JUnit การทดสอบข้อยกเว้นที่คาดหวัง: @Test(คาดหวัง)
JUnit ให้ความสามารถในการติดตามข้อยกเว้นและตรวจสอบว่าโค้ดกำลังโยนข้อยกเว้นตามที่คาดไว้หรือไม่
Junit4 มอบวิธีการที่ง่ายและอ่านได้สำหรับการทดสอบข้อยกเว้น คุณสามารถใช้
- พารามิเตอร์ทางเลือก (คาดไว้) ของคำอธิบายประกอบ @test และ
- เพื่อติดตามข้อมูล ”fail()” สามารถใช้ได้
ในขณะที่ การทดสอบ ข้อยกเว้น คุณต้องแน่ใจว่าคลาสข้อยกเว้นที่คุณระบุในพารามิเตอร์ทางเลือกนั้น @ทดสอบคำอธิบายประกอบ เหมือนกัน. เนื่องจากคุณคาดหวังข้อยกเว้นจากวิธีการที่คุณเป็น การทดสอบหน่วยมิฉะนั้นเรา JUnit การทดสอบจะล้มเหลว
ตัวอย่าง @ ทดสอบ (คาดหวัง = IllegalArgumentException.class)
เมื่อใช้พารามิเตอร์ “expected” คุณสามารถระบุชื่อข้อยกเว้นที่การทดสอบของเราอาจใช้ ในตัวอย่างข้างต้น คุณกำลังใช้ “ข้อยกเว้นข้อโต้แย้งที่ผิดกฎหมาย” ซึ่งจะถูกโยนทิ้งโดยการทดสอบหากนักพัฒนาใช้อาร์กิวเมนต์ที่ไม่ได้รับอนุญาต
ตัวอย่างการใช้ @test(คาดหวัง)
มาทำความเข้าใจการทดสอบข้อยกเว้นด้วยการสร้าง Java คลาสที่มีวิธีการโยนข้อยกเว้น คุณจะจัดการและทดสอบในคลาสทดสอบ พิจารณา JUnitMessage.java มีวิธีการที่ทำการคำนวณทางคณิตศาสตร์โดยอิงจากอินพุตที่ผู้ใช้รับเข้ามา หากป้อนอาร์กิวเมนต์ที่ไม่ถูกต้อง ระบบจะแสดง "ArithmeticException" ดังตัวอย่างด้านล่าง:
package guru99.junit;
public class JUnitMessage{
private String message;
public JUnitMessage(String message) {
this.message = message;
}
public void printMessage(){
System.out.println(message);
int divide=1/0;
}
public String printHiMessage(){
message="Hi!" + message;
System.out.println(message);
return message;
}
}
คำอธิบายรหัส:
- รหัสบรรทัด 7: การสร้างคอนสตรัคเตอร์แบบกำหนดพารามิเตอร์ด้วยการเริ่มต้นฟิลด์
- รหัสบรรทัด 11-14: การสร้างวิธีการดำเนินการทางคณิตศาสตร์
- รหัสบรรทัด 18: การสร้างวิธีอื่นในการพิมพ์ข้อความ
- รหัสบรรทัด 20: การสร้างสตริงใหม่เพื่อพิมพ์ข้อความ
- รหัสบรรทัด 21: พิมพ์ข้อความใหม่ที่สร้างขึ้นในบรรทัดที่ 20
มาสร้างคลาสทดสอบสำหรับคลาส Java ข้างต้นเพื่อตรวจสอบข้อยกเว้น
ดูด้านล่างทดสอบคลาสเพื่อทดสอบข้อยกเว้นยูนิต (ArithmeticException ที่นี่) จากคลาส Java ด้านบน:
AirthematicTest.java
package guru99.junit;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class AirthematicTest {
public String message = "Saurabh";
JUnitMessage junitMessage = new JUnitMessage(message);
@Test(expected = ArithmeticException.class)
public void testJUnitMessage(){
System.out.println("Junit Message is printing ");
junitMessage.printMessage();
}
@Test
public void testJUnitHiMessage(){
message="Hi!" + message;
System.out.println("Junit Message is printing ");
assertEquals(message, junitMessage.printMessage());
}
}
คำอธิบายรหัส:
- รหัสบรรทัด 13: การใช้คำอธิบายประกอบ @Test เพื่อสร้างการทดสอบของเรา เมื่อคุณดำเนินการตามวิธีการคลาสข้างต้น ระบบจะเรียกใช้การดำเนินการทางคณิตศาสตร์ ที่นี่คาดว่าจะมีข้อยกเว้นทางคณิตศาสตร์ ดังนั้น คุณจึงแสดงรายการดังกล่าวเป็นพารามิเตอร์ใน @Test
- รหัสบรรทัด 17: การเรียกใช้ printMessage() JUnitMessage.java
- รหัสบรรทัด 18: การสร้างวิธีอื่นในการพิมพ์ข้อความ HI
หากคุณดำเนินการคลาสการทดสอบนี้ วิธีทดสอบจะดำเนินการกับพารามิเตอร์ที่กำหนดแต่ละตัว ในตัวอย่างข้างต้น วิธีทดสอบจะดำเนินการห้าครั้ง
มาดำเนินการและตรวจสอบผลลัพธ์กัน ดูคลาสนักวิ่งทดสอบด้านล่างเพื่อดำเนินการ ตัวอย่างการทดสอบ JunitTest.java
Output:
นี่คือผลลัพธ์ที่แสดงการทดสอบที่สำเร็จโดยไม่มีการติดตามความล้มเหลวดังที่ระบุด้านล่าง:
สรุป
- การทดสอบข้อยกเว้นเป็นคุณลักษณะพิเศษที่นำมาใช้ JUnit4. ในบทช่วยสอนนี้ คุณได้เรียนรู้วิธีทดสอบข้อยกเว้นแล้ว JUnit ใช้ @test (ยกเว้น)
- Junit มีสิ่งอำนวยความสะดวกในการติดตามข้อยกเว้นและตรวจสอบว่าโค้ดกำลังสร้างข้อยกเว้นหรือไม่
- สำหรับการทดสอบข้อยกเว้น คุณสามารถใช้
- พารามิเตอร์ทางเลือก (คาดไว้) ของคำอธิบายประกอบ @test และ
- เพื่อติดตามข้อมูล ”fail()” สามารถใช้ได้



