นำ TDD ไปใช้กับการกลับค่าตัวเลข
ได้เรียนรู้แนวคิด Test-Driven Development กันไปแล้ว ตอนนี้มาลองนำไปใช้จริงกัน ลองพิจารณาเมธอดง่าย ๆ สำหรับกลับค่าของ int หากคิดในแบบ TDD สิ่งแรกที่ต้องทำคือเขียนเทสก่อน โดยให้มุ่งความสนใจไปที่พฤติกรรมของเมธอด (อินพุตและเอาต์พุต) ไม่ใช่วิธีการ implement ซึ่งจะช่วยฝึกให้ให้ความสำคัญกับ requirement ของโปรเจกต์เป็นอันดับแรก
ในโค้ดด้านล่าง ให้เติมเทสให้สมบูรณ์โดยระบุค่าเอาต์พุตที่คาดหวัง นิพจน์สำหรับรับค่าจริงจากเมธอด และนิพจน์ภายใน assertEquals()
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทดสอบใน Java เบื้องต้น
คำแนะนำการฝึกหัด
- ป้อนค่าที่กลับแล้วที่ถูกต้องสำหรับตัวเลขที่รับเข้ามา
- เรียกใช้เมธอด
reverse()ของIntReverserเพื่อรับค่าจริง - JUnit กำหนดลำดับของค่า
expectedและactualไว้อย่างเฉพาะเจาะจง ให้ป้อนค่าทั้งสองลงในassertEquals()ตามลำดับที่กำหนด
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
public class IntReverser {
public static int reverse(int input) {
return 0;
}
public static class IntReverserTest {
@Test
public void testReverse_reversesNumber() {
int input = 1234;
// Write down the expected return value
int expected = ____;
// Call the reverse() method to obtain its actual return value
int actual = IntReverser.____(____);
// Write the arguments for the assert statement in the correct order
assertEquals(____, ____);
}
}
public static void main(String[] args) {
launchTestsAndPrint(IntReverserTest.class);
}
}