Parameterized Test สำหรับตรวจสอบ Username
เมื่อความรู้ Java เพิ่มขึ้น จึงกลับมาปรับปรุง username validator จาก Chapter 1 ใหม่ เนื่องจากเมธอดนี้ขึ้นอยู่กับผลลัพธ์เดียว จึงสามารถย่อโค้ดให้กระชับขึ้นด้วย parameterization ได้
พิจารณากรณีที่เมธอด isValidUsername() ให้ผลลัพธ์เป็น failure ทั้งหมด แล้วรวมทุกกรณีไว้ใน @ParameterizedTest เดียว
แพ็กเกจ JUnit ที่จำเป็นได้ถูก import ไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทดสอบใน Java เบื้องต้น
คำแนะนำการฝึกหัด
- ใช้ annotation ที่ถูกต้องเพื่อทำเครื่องหมายเทสว่าเป็น parameterized test
- เพิ่ม null input เข้าไปในเทส
- เพิ่ม annotation สำหรับระบุค่า input ในเทส
- ระบุประเภทของค่า input
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
public class Main {
public static void main(String[] args) {
launchTestsAndPrint(UsernameValidatorTest.class);
}
}
class UsernameValidatorTest {
// Annotate with the correct annotation for parameterized test
@____
// Add the annotation for inputting a null input
@____
// Add the annotation for inputting values and the type of the inputs
@____(____ = {"john doe", "jd"})
void isValidUsername_returnsFalse_whenSpaces(String username) {
boolean actual = UsernameValidator.isValidUsername(username);
assertFalse(actual);
}
}