ການສອນນີ້ອະທິບາຍວິທີການບໍ່ສົນໃຈກໍລະນີທົດສອບໃນ JUnit ດ້ວຍຕົວຢ່າງ. ທ່ານຈະຮຽນຮູ້ທີ່ຈະໃຊ້ @Ignore ໃນ JUnit 4 & @Disabled Annotation ໃນ JUnit 5:
ໃນບົດສອນກ່ອນໜ້ານີ້, ພວກເຮົາຕ້ອງເຂົ້າໃຈສິ່ງທີ່ API ເອີ້ນວ່າ Annotation, ມັນເຮັດຫຍັງ ແລະຍັງໄດ້ເຫັນຕົວຢ່າງພື້ນຖານກ່ຽວກັບວິທີໃຊ້ lifecycle annotations, ລຳດັບຄວາມສຳຄັນຂອງພວກມັນ. ຖືເມື່ອກໍລະນີທົດສອບຖືກປະຕິບັດ.
ໃຫ້ພະຍາຍາມສ່ອງແສງໃສ່ສະຖານະການທີ່ພວກເຮົາ ຕ້ອງການ ບໍ່ ແລ່ນ ຫຼື ແມ່ນ ບໍ່ແມ່ນ ສົມມຸດ ທີ່ຈະດໍາເນີນກໍລະນີທົດສອບທັງໝົດ. ພວກເຮົາຈະຮຽນຮູ້ທີ່ຈະບໍ່ສົນໃຈກໍລະນີທົດສອບໃນ JUnit.
JUnit Ignore Test Cases
ອາດມີບາງກໍລະນີທົດສອບທີ່ບໍ່ໄດ້ດໍາເນີນການເພາະວ່າພວກເຂົາອາດຈະບໍ່ ກ່ຽວຂ້ອງກັບການປ່ຽນແປງລະຫັດບາງຢ່າງ ຫຼືລະຫັດຂອງກໍລະນີທົດສອບອາດຈະຍັງຢູ່ໃນລະຫວ່າງການພັດທະນາ, ດັ່ງນັ້ນພວກເຮົາຈຶ່ງຫຼີກລ່ຽງການແລ່ນພວກມັນ.
ໃນກໍລະນີດັ່ງກ່າວ, ພວກເຮົາອາດຈະຕ້ອງດໍາເນີນການຊຸດຂອງກໍລະນີທົດສອບໂດຍການຂ້າມໄປອີກສອງສາມອັນ. . ດັ່ງນັ້ນ, ມັນແມ່ນຫຍັງທີ່ JUnit 4, ເຊັ່ນດຽວກັນກັບ JUnit 5, ສະຫນອງໃຫ້ພວກເຮົາເພື່ອໃຫ້ພວກເຮົາສາມາດດໍາເນີນການພຽງແຕ່ສອງສາມກໍລະນີໃນຂະນະທີ່ບໍ່ສົນໃຈຫຼືປິດການໃຊ້ງານຫຼືເອີ້ນວ່າມັນ 'ຂ້າມ' ບາງກໍລະນີທົດສອບ?3
ໂຊກດີ, ພວກເຮົາມີ @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 annotation ຄືກັນ. ຄຳອະທິບາຍປະກອບໃສ່ໃນອາກິວເມັນອັນດຽວກັບຄ່າສະຕຣິງທີ່ເປັນເຫດຜົນຂອງການຂ້າມການທົດສອບ.
ໃຫ້ພວກເຮົາສາທິດການປ່ຽນແປງນີ້ຂອງ @Ignore annotation.
Snippet ລະຫັດມີດັ່ງນີ້. :
@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"); }
ຫຼັງການດຳເນີນການຂອງໄຟລ໌ຫ້ອງຮຽນ, console ສະແດງ ບໍ່ມີຫຍັງ, ແລະ Run count ພາຍໃຕ້ແຖບ JUnit ສະແດງ 1 class ຂ້າມອອກຈາກ 1 class .
ລຸ່ມນີ້ແມ່ນຮູບໜ້າຈໍຂອງໜ້າຕ່າງຄອນໂຊ:
JUnit 5 – @Disabled Annotation
@Disabled annotation ໃນ JUnit 5 ເຮັດວຽກຄ້າຍຄືກັນກັບ @Ignore annotation ໃນ JUnit 4.
- ທ່ານສາມາດປິດການໃຊ້ງານ ຫຼືຂ້າມການດໍາເນີນການສໍາລັບວິທີການທົດສອບ ຫຼືກຸ່ມຂອງການທົດສອບໂດຍການໃຊ້ຄໍາບັນຍາຍໃນລະດັບການທົດສອບ.
- ຫຼື ການທົດສອບທັງໝົດສາມາດຂ້າມໄດ້ໂດຍການໃຊ້ @Disabled annotation ໃນລະດັບຫ້ອງຮຽນ ແທນທີ່ຈະໃຊ້ມັນກັບລະດັບວິທີການທົດສອບ.
ເຊັ່ນດຽວກັນກັບ @Ignore, ເຫດຜົນສາມາດຜ່ານໄດ້. ສໍາລັບ @Disabled ສໍາລັບນັກພັດທະນາຫຼືນັກວິເຄາະທຸລະກິດທີ່ຈະຮູ້ວ່າເປັນຫຍັງ testcase ສະເພາະຖືກຂ້າມ. ພາຣາມິເຕີຍັງຄົງເປັນທາງເລືອກຄືກັບກໍລະນີຂອງ @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.