JUnit @ ละเว้นคำอธิบายประกอบการทดสอบพร้อมตัวอย่าง
บางครั้งคุณอาจไม่ต้องการดำเนินการเมธอด/โค้ดหรือ กรณีทดสอบ เพราะการเขียนโค้ดยังทำไม่เต็มที่ สำหรับการทดสอบเฉพาะนั้น JUnit ให้ @ไม่สนใจ คำอธิบายประกอบเพื่อข้ามการทดสอบ
ความหมายของ JUnit @ ละเว้นคำอธิบายประกอบการทดสอบ
คำอธิบายประกอบการทดสอบ @Ignore ใช้เพื่อละเว้นการทดสอบเฉพาะหรือกลุ่มการทดสอบเพื่อข้ามความล้มเหลวของบิลด์
@ไม่สนใจ คำอธิบายประกอบสามารถใช้ได้ในสองสถานการณ์ตามที่ระบุด้านล่าง:
- หากคุณต้องการละเว้นวิธีทดสอบ ให้ใช้ @Ignore ร่วมกับคำอธิบายประกอบ @Test
- หากคุณต้องการละเว้นการทดสอบทั้งหมดของคลาส ให้ใช้คำอธิบายประกอบ @Ignore ในระดับชั้นเรียน
คุณสามารถระบุเหตุผลในการปิดใช้งานการทดสอบได้ในพารามิเตอร์ทางเลือกที่จัดทำโดยคำอธิบายประกอบ @Ignore
มันจะช่วยให้นักพัฒนาคนอื่น ๆ ที่ทำงานบนโค้ดชิ้นเดียวกันเข้าใจ "เหตุใดการทดสอบใดการทดสอบหนึ่งจึงถูกปิดใช้งาน" เมื่อปัญหาของการทดสอบนั้นได้รับการแก้ไขแล้ว คุณสามารถเปิดใช้งานได้โดยการลบออก @ ละเว้นคำอธิบายประกอบ.
ตัวอย่างการทดสอบ Junit – เพิกเฉย
ตามที่กล่าวไว้ในคำจำกัดความข้างต้น คุณสามารถใช้คำอธิบายประกอบ @Ignore เพื่อละเว้นการทดสอบหรือกลุ่มของการทดสอบได้
มาทำความเข้าใจโดยใช้ตัวอย่างง่ายๆ และในสถานการณ์ที่กำหนดด้านล่าง:
- การสร้างคลาสการทดสอบอย่างง่ายโดยไม่ต้องละเว้นการทดสอบ
- ละเว้นวิธีทดสอบโดยใช้ @Ignore คำอธิบายประกอบ
- ละเว้นวิธีทดสอบโดยใช้คำอธิบายประกอบ @Ignore ด้วยเหตุผลที่เหมาะสม
- ละเว้นวิธีทดสอบทั้งหมดโดยใช้ @Ignore คำอธิบายประกอบ
การสร้างคลาสการทดสอบอย่างง่ายโดยไม่ต้องละเว้นการทดสอบ
มาสร้างเรื่องง่ายๆ กันดีกว่า Java คลาสที่พิมพ์ข้อความสองประเภท
- วิธีแรกพิมพ์ข้อความธรรมดาและ
- วิธีที่สองพิมพ์ข้อความ "สวัสดี"
JUnitMessage.java
package guru99.junit; public class JUnitMessage { private String message; public JUnitMessage(String message) { this.message = message; } public String printMessage(){ System.out.println(message); return message; } public String printHiMessage(){ message="Hi!"+ message; System.out.println(message); return message; } }
ตัวอย่างการทดสอบ JunitTest.java
มาสร้าง .กันเถอะ JUnit ชั้นเรียนทดสอบเพื่อทดสอบ JUnitMessage.java
ในการนี้ JUnit ชั้นเรียนทดสอบ
- การทดสอบครั้งแรกชื่อ “ทดสอบJUnitMessage()” ทดสอบเมธอด “printMessage()” ของคลาสข้างต้น
- ในทำนองเดียวกันการทดสอบครั้งที่สองชื่อ "การทดสอบJUnitHiMessage” ทดสอบ “ทดสอบJUnitHiMessage” ของคลาสข้างต้น
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Test; public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Test public void testJUnitMessage() { System.out.println("Junit Message is printing"); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
TestRunner.java
มาสร้างคลาสตัวเรียกใช้การทดสอบเพื่อเรียกใช้ JunitTestExample.java กัน
package guru99.junit; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(JunitTestExample.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println("Result=="+result.wasSuccessful()); } }
Output:
พิมพ์คำสั่งบนคอนโซล:
ข้อความ Junit Hi กำลังพิมพ์อยู่
สวัสดี!Guru99
ข้อความ Junit กำลังพิมพ์
Guru99
ละเว้นวิธีทดสอบโดยใช้ @Ignore คำอธิบายประกอบ
มาสร้างการทดสอบแบบละเลยเพื่อปิดการใช้งานการทดสอบในตัวอย่างด้านบน สำหรับสิ่งนี้ คุณต้องใช้ @Ignore ในวิธีการที่คุณต้องการข้าม
มาทำแบบทดสอบกันเถอะJUnitข้อความ() ของ JunitTestExample.java
ตัวอย่างการทดสอบ JunitTest.java
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Ignore; import org.junit.Test; public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Ignore @Test public void testJUnitMessage() { System.out.println("Junit Message is printing "); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
Output:
มาดำเนินการและตรวจสอบผลลัพธ์ของตัวอย่างด้านบนกัน
เอาต์พุตด้านล่างแสดงว่ามีการทดสอบหนึ่งครั้งถูกข้าม (ปิดใช้งาน) ดูตามเครื่องหมายด้านล่าง:
พิมพ์คำสั่งบนคอนโซล:
ข้อความ Junit Hi กำลังพิมพ์อยู่
สวัสดี!Guru99
การใช้ @ ละเว้นคำอธิบายประกอบกับเงื่อนไข
มาดูตัวอย่างวิธีการเพิกเฉยต่อการทดสอบและระบุเหตุผลของการเพิกเฉยไปพร้อมๆ กัน ตามที่กล่าวไว้ข้างต้น เพื่อให้เหตุผลที่คุณมีพารามิเตอร์ทางเลือกหนึ่งพารามิเตอร์ในคำอธิบายประกอบ @Ignore ซึ่งคุณสามารถระบุข้อความเหตุผลได้
ตัวอย่างการทดสอบ JunitTest.java
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Ignore; import org.junit.Test; public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Ignore("not yet ready , Please ignore.") @Test public void testJUnitMessage() { System.out.println("Junit Message is printing "); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
Output:
เช่นเดียวกับข้างต้น
ละเว้นวิธีทดสอบทั้งหมดโดยใช้ @Ignore คำอธิบายประกอบ
ตามที่กล่าวไว้ข้างต้นเพื่อเพิกเฉยต่อการทดสอบทั้งหมดในชั้นเรียน คุณต้องใช้คำอธิบายประกอบ @Ignore ในระดับชั้นเรียน
เรามาแก้ไขตัวอย่างด้านบนเพื่อทำความเข้าใจวิธีละเว้นการทดสอบทั้งหมด:
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Ignore; import org.junit.Test; @Ignore public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Test public void testJUnitMessage() { System.out.println("Junit Message is printing "); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
Output:
พิมพ์คำสั่งบนคอนโซล:
เนื่องจากการทดสอบทั้งสองข้ามไปโดยใช้ @Ignore ในระดับชั้นเรียน ดังนั้นจึงไม่มีการพิมพ์คำสั่งบนคอนโซล
สรุป
ในบทช่วยสอนนี้ คุณได้เรียนรู้วิธีละเว้นการทดสอบเดี่ยว กลุ่มการทดสอบ หรือการทดสอบทั้งหมดโดยใช้คำอธิบายประกอบ @Ignore
@ไม่สนใจ คำอธิบายประกอบสามารถใช้ได้ในสองสถานการณ์ตามที่ระบุด้านล่าง:
- หากคุณต้องการละเว้นวิธีทดสอบ ให้ใช้ @Ignore ร่วมกับคำอธิบายประกอบ @Test
- หากคุณต้องการละเว้นการทดสอบทั้งหมดของคลาส ให้ใช้คำอธิบายประกอบ @Ignore ในระดับชั้นเรียน
คุณยังได้เรียนรู้วิธีการจัดทำคำชี้แจงเพื่อทำความเข้าใจนักพัฒนารายอื่นด้วยว่าเหตุใดการทดสอบใดการทดสอบหนึ่งจึงถูกปิดใช้งาน