ការបង្រៀននេះពន្យល់ពីរបៀបមិនអើពើនឹងករណីសាកល្បងនៅក្នុង JUnit ជាមួយនឹងឧទាហរណ៍។ អ្នកនឹងរៀនប្រើ @Ignore នៅក្នុង JUnit 4 & @Disabled Annotation នៅក្នុង JUnit 5:
នៅក្នុងមេរៀនមុន យើងត្រូវយល់ពីអ្វីដែល API ហៅថា Annotation ជាអ្វី ដែលវាធ្វើ និងក៏បានឃើញឧទាហរណ៍ជាមូលដ្ឋានអំពីរបៀបប្រើ lifecycle annotations អាទិភាពរបស់ពួកគេ សង្កត់នៅពេលដែលករណីសាកល្បងត្រូវបានប្រតិបត្តិ។
តោះព្យាយាមបញ្ចេញពន្លឺទៅលើស្ថានភាពនៅពេលដែលយើង ត្រូវការ មិន រត់ ឬ គឺ មិន សន្មត់ថា ដំណើរការករណីសាកល្បងទាំងអស់។ យើងនឹងរៀនដើម្បីមិនអើពើករណីសាកល្បងនៅក្នុង JUnit ។
JUnit មិនអើពើករណីធ្វើតេស្ត
អាចមានករណីសាកល្បងមួយចំនួនដែលមិនត្រូវបានដំណើរការ ព្រោះវាប្រហែលជាមិនមាន ពាក់ព័ន្ធនឹងការផ្លាស់ប្តូរកូដជាក់លាក់ ឬកូដសម្រាប់ករណីសាកល្បងអាចនៅតែស្ថិតក្នុងការអភិវឌ្ឍន៍នៅឡើយ ដូច្នេះយើងជៀសវាងការដំណើរការពួកវា។
ក្នុងករណីបែបនេះ យើងប្រហែលជាត្រូវដំណើរការសំណុំនៃករណីសាកល្បងដោយរំលងពីរបីផ្សេងទៀត . ដូច្នេះ តើ JUnit 4 ក៏ដូចជា JUnit 5 ផ្តល់អ្វីដល់យើង ដើម្បីអោយយើងអាចដំណើរការករណីសាកល្បងមួយចំនួនបានតែប៉ុនណោះ ខណៈពេលដែលមិនអើពើ ឬបិទ ឬហៅវាថា 'រំលង' ករណីសាកល្បងមួយចំនួន?
ជាសំណាងល្អ យើងមាន @Ignore ចំណារពន្យល់សម្រាប់ JUnit 4 ដើម្បីរំលងករណីសាកល្បង ចំណែកឯ @Disabled ចំណារពន្យល់សម្រាប់ JUnit 5 ដើម្បីធ្វើដូចគ្នា។
JUnit 4 – @Ignore Annotation
- JUnit 4 @Ignore annotation អាចត្រូវបានអនុវត្តសម្រាប់វិធីសាស្ត្រសាកល្បង ដើម្បីរំលងការប្រតិបត្តិរបស់វា។ ក្នុងករណីនេះ,អ្នកត្រូវប្រើ @Ignore ជាមួយ @Test annotation សម្រាប់វិធីសាស្ត្រសាកល្បងដែលអ្នកចង់រំលង។
- ចំណារពន្យល់ក៏អាចត្រូវបានអនុវត្តចំពោះថ្នាក់ធ្វើតេស្តផងដែរ ដើម្បីរំលងករណីសាកល្បងទាំងអស់នៅក្រោមថ្នាក់មួយ។ ក្នុងករណីនេះ អ្នកត្រូវប្រើ @Ignore នៅកម្រិតថ្នាក់។
កូដត្រូវការកញ្ចប់ org.junit.Ignore ដើម្បីនាំចូលសម្រាប់ @Ignore ដើម្បីដំណើរការ។ សូមបង្ហាញពីរបៀបរំលងវិធីសាស្ត្រសាកល្បងក្នុងការធ្វើតេស្ត JUnit 4។ យើងនឹងកែប្រែ JUnitProgram.java ដើម្បីរំលងវិធីសាស្ត្រសាកល្បងដំបូង។
ព័ត៌មានសង្ខេបនៃកូដគឺ៖
@Ignore @Test public void test_JUnit1() { System.out.println("This is the testcase test_JUnit1() in this class"); } @Test public void test_JUnit2() { System.out.println("This is the testcase test_JUnit2() in this class"); } @Test public void test_JUnit3() { System.out.println("This is the testcase test_JUnit3() in this class"); }
នៅលើការប្រតិបត្តិនៃឯកសារថ្នាក់ test_JUnit1() ត្រូវបានរំលងកំឡុងពេលអនុវត្ត។ លើសពីនេះ វិធីសាស្ត្រដែលបានកំណត់ចំណាំជាមួយ @Ignore និងវិធីសាស្ត្រសាកល្បងផ្សេងទៀតទាំងអស់ដំណើរការដូចការរំពឹងទុក។
ចំនួនការរត់ជាលទ្ធផលបង្ហាញករណីសាកល្បង 3/3 និងករណីសាកល្បង 1 បង្ហាញការរំលង។ ចំនួនរត់បានបង្ហាញពី 3/3 ពីព្រោះសូម្បីតែករណីសាកល្បងដែលរំលងបានព្យាយាមប្រតិបត្តិ។
រូបថតអេក្រង់ខាងក្រោមនៃបង្អួចកុងសូលបង្ហាញដូចគ្នា។
@Ignore Annotation with A Reason Parameter
វាក៏មានការប្រែប្រួលចំពោះចំណារពន្យល់ @Ignore ផងដែរ។ ចំណារពន្យល់ត្រូវប្រើក្នុងអាគុយម៉ង់តែមួយជាមួយនឹងតម្លៃខ្សែអក្សរ ដែលជាហេតុផលសម្រាប់ការរំលងការធ្វើតេស្ត។
សូមបង្ហាញការបំរែបំរួលនេះនៃ @Ignore annotation។
អត្ថបទកូដមានដូចខាងក្រោម :
@Ignore("the testcase is under development") @Test public void test_JUnit1() { System.out.println("This is the testcase test_JUnit1() in this class"); }
បង្អួចកុងសូលបង្ហាញលទ្ធផលដូចគ្នានឹងវាដោយគ្មានហេតុផលដែលបានបញ្ជូនទៅ @Ignore annotation។
ឥឡូវនេះ អនុញ្ញាតឱ្យយើងមើលពីរបៀបដែលការធ្វើតេស្តទាំងអស់ជាកម្មសិទ្ធិរបស់ថ្នាក់អាចត្រូវបានបិទ។ ឥឡូវនេះ យើងនឹងធ្វើបច្ចុប្បន្នភាពចំណារពន្យល់ @Ignore នៅកម្រិតថ្នាក់សម្រាប់ JUnitProgram.java
ព័ត៌មានសង្ខេបនៃកូដគឺដូចបានបង្ហាញខាងក្រោម៖
import org.junit.AfterClass; @Ignore("the testcase is under development") public class JUnitProgram { @BeforeClass public static void preClass() { System.out.println("This is the preClass() method that runs one time before the class"); } @Before public void setUp() { System.out.println("_______________________________________________________\n"); System.out.println("This is the setUp() method that runs before each testcase"); } @Test public void test_JUnit1() { System.out.println("This is the testcase test_JUnit1() in this class"); }
ការប្រតិបត្តិក្រោយនៃឯកសារថ្នាក់, កុងសូល បង្ហាញ គ្មានអ្វីទេ ហើយ រត់ រាប់ នៅក្រោមផ្ទាំង JUnit បង្ហាញ ថ្នាក់ 1 រំលងចេញពី 1 ថ្នាក់ .
ខាងក្រោមគឺជារូបថតអេក្រង់នៃបង្អួចកុងសូល៖
JUnit 5 – @Disabled Annotation
ចំណារពន្យល់ @Disabled នៅក្នុង JUnit 5 ដំណើរការស្រដៀងនឹង @Ignore annotation នៅក្នុង JUnit 4។
- អ្នកអាចបិទ ឬរំលងការប្រតិបត្តិសម្រាប់វិធីសាស្ត្រសាកល្បង ឬក្រុមនៃការធ្វើតេស្តដោយអនុវត្តចំណារពន្យល់នៅកម្រិតតេស្ត។
- ឬការធ្វើតេស្តទាំងអស់អាចត្រូវបានរំលងដោយអនុវត្តការចំណារពន្យល់ @Disabled នៅកម្រិតថ្នាក់ ជំនួសឱ្យការអនុវត្តន៍វាទៅកម្រិតវិធីសាស្ត្រសាកល្បង។
ដូចជា @Ignore ហេតុផលក៏អាចឆ្លងកាត់បានផងដែរ។ សម្រាប់ @Disabled សម្រាប់អ្នកអភិវឌ្ឍន៍ ឬអ្នកវិភាគអាជីវកម្ម ដើម្បីដឹងពីមូលហេតុដែលករណីសាកល្បងជាក់លាក់មួយត្រូវបានរំលង។ ប៉ារ៉ាម៉ែត្រនៅតែជាជម្រើសដូចក្នុងករណី @Ignore ដែរ។
( ចំណាំ៖ យើងនឹងជៀសវាងការបង្ហាញចំណារពន្យល់ @Disabled តាមរយៈកូដជាក់ស្តែង ដើម្បីជៀសវាងការកើតឡើងដដែលៗ ដូចដែលវាធ្វើតាម ម៉ូតពិតប្រាកដដែល @Ignore ធ្វើតាមនៅក្នុង JUnit 4.)
ភាពខុសគ្នាតែមួយគត់ដែលអ្នកត្រូវសង្កេតក្នុងករណី @Ignore Vs @Disabled គឺនៅពេលដែលចំណារពន្យល់ត្រូវបានអនុវត្តនៅ កម្រិតថ្នាក់, ក្រោយការប្រតិបត្តិនៃឯកសារថ្នាក់ JUnit,ចំនួនរត់នៅក្នុងករណីនៃ JUnit 4 បង្ហាញថ្នាក់ 1/1 រំលង។
ដូច្នេះ ចំនួននៃថ្នាក់ដែលត្រូវបានរំលងត្រូវបានផ្តល់ជូន ចំណែកឯក្នុងករណី JUnit 5 បង្ហាញករណីសាកល្បង 3/3 ត្រូវបានរំលងដោយពិចារណាថា វិធីសាស្ត្រសាកល្បងចំនួនបីត្រូវបានរំលង ក្នុងចំណោមវិធីសាស្ត្រសាកល្បងសរុបទាំងបីនៅក្នុងថ្នាក់។
ដូច្នេះនៅលើ ភាពមើលឃើញនៃករណីសាកល្បងដែលរំលងបានរាប់ , JUnit 5 ធ្វើការងារ ប្រសើរជាង បន្តិចបើប្រៀបធៀបទៅនឹង JUnit 4.
សេចក្តីសន្និដ្ឋាន
នៅក្នុងមេរៀននេះ យើងបានរៀនពីអ្វីដែលជាស្ថានភាព នៅពេលដែលយើងប្រហែលជាត្រូវរំលងការប្រតិបត្តិករណីសាកល្បងមួយចំនួន។ យើងក៏បានរៀនពីរបៀបរំលងករណីសាកល្បងមួយចំនួនទាំងនៅក្នុង JUnit 4 ក៏ដូចជា JUnit 5។