Tôi đã thiết kế và phát triển mã với phong cách TDD trong một thời gian dài. Điều làm tôi băn khoăn về TDD là viết các bài kiểm tra cho mã không chứa bất kỳ logic kinh doanh hoặc hành vi thú vị nào. Tôi biết TDD là một hoạt động thiết kế nhiều hơn thử nghiệm nhưng đôi khi tôi cảm thấy thật vô ích khi viết thử nghiệm trong các kịch bản này.
Ví dụ: tôi có một kịch bản đơn giản như "Khi người dùng nhấp vào nút kiểm tra, nó sẽ kiểm tra tính hợp lệ của tệp" . Đối với kịch bản này, tôi thường bắt đầu viết các bài kiểm tra cho lớp người trình bày / trình điều khiển như lớp dưới đây.
@Test
public void when_user_clicks_check_it_should_check_selected_file_validity(){
MediaService service =mock(MediaService);
View view =mock(View);
when(view.getSelectedFile).thenReturns("c:\\Dir\\file.avi");
MediaController controller =new MediaController(service,view);
controller.check();
verify(service).check("c:\\Dir\\file.avi");
}
Như bạn có thể thấy không có quyết định thiết kế hoặc mã thú vị để xác minh hành vi. Tôi đang kiểm tra các giá trị từ chế độ xem được chuyển đến MediaService. Tôi thường viết nhưng không thích những bài kiểm tra kiểu này. Bạn làm gì về những tình huống này? Bạn có viết bài kiểm tra cho tất cả các thời gian?
CẬP NHẬT:
Tôi đã thay đổi tên và mã kiểm tra sau khi khiếu nại. Một số người dùng nói rằng bạn nên viết bài kiểm tra cho các trường hợp tầm thường như thế này để trong tương lai ai đó có thể thêm hành vi thú vị. Nhưng những gì về Code Code cho ngày hôm nay, thiết kế cho ngày mai. ? Nếu ai đó, bao gồm cả tôi, thêm mã thú vị hơn trong tương lai, bài kiểm tra có thể được tạo cho nó sau đó. Tại sao tôi phải làm điều đó ngay bây giờ cho các trường hợp tầm thường?