CsvSource: ตัวเลข
กลับมาดูเมธอด lastDigit() จากบทที่ 1 อีกครั้ง คราวนี้เพิ่มการรองรับค่าลบด้วย Math.abs() แล้ว เมื่อรู้ว่าสามารถย่อการทดสอบให้กระชับขึ้นด้วย @ParameterizedTest ได้ จึงลองทดสอบผลลัพธ์ทั้งหมดของ lastDigit() ในครั้งเดียว
ตรวจสอบว่าเมธอดคืนค่าหลักสุดท้ายที่ถูกต้องสำหรับจำนวนเต็มที่เป็นบวก ลบ และลงท้ายด้วยศูนย์
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทดสอบใน Java เบื้องต้น
คำแนะนำการฝึกหัด
- ใช้ annotation สำหรับส่งค่าหลายค่าเข้าไปในเมธอดทดสอบ
- เพิ่มอาร์กิวเมนต์ให้กับเมธอดทดสอบ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
public class LastDigitWithTests {
public static void main(String[] args) {
launchTestsAndPrint(LastDigitTest.class);
}
}
class LastDigit {
public static int lastDigit(int a) {
return Math.abs(a) % 10;
}
}
class LastDigitTest {
@ParameterizedTest
// Use the correct annotation for a pair of integer inputs
@____(value = {"2025, 5", "-2025, 5", "2020, 0"})
// Write the corresponding argument types for the test method
void testLastDigit(____ number, ____ expected) {
int actual = LastDigit.lastDigit(number);
assertEquals(expected, actual);
}
}