Tôi đang kết nối với dịch vụ bên ngoài đơn giản, nếu không đồng bộ.Làm thế nào có thể chế nhạo các dịch vụ bên ngoài cải thiện các bài kiểm tra đơn vị?
Tôi tin rằng các bài kiểm tra đơn vị của tôi không nên phụ thuộc vào tính khả dụng hoặc thực hiện dịch vụ bên ngoài đó, vì vậy tôi dự định sẽ thử.
Tôi cần giả để chấp nhận và trả lời các tin nhắn và phản hồi thực tế - nếu không thử nghiệm của tôi sẽ không đại diện cho các trạng thái thực sự của công việc. Ví dụ, nó phải ném đúng loại lỗi - và có ít nhất 7 cách khác nhau mà nó có thể thất bại (giữa bạn và tôi không phải là dịch vụ bên ngoài được thiết kế tốt). Vì vậy, ở mức tối thiểu tôi phải có một băm của các cặp tin nhắn/phản hồi.
Vì vậy, thay vì giảm dự phòng, chế nhạo đã giới thiệu lại nó ở một nơi khác. Trong thực tế, như nói đi, bây giờ tôi đã có hai vấn đề: Tôi đã phải chắc chắn rằng những gì trong băm của tôi là một đại diện công bằng về cách dịch vụ bên ngoài cư xử. Nhưng chắc chắn nguồn kinh điển của đối tượng phản hồi X đưa ra cho thông điệp m là chính X. Bất cứ điều gì khác là nguy hiểm và lộn xộn.
Tôi đã rẽ sai? Làm thế nào tôi có thể loại bỏ vòng tròn rõ ràng này?
EDIT Tôi đã làm rõ những gì tôi nghĩ rằng vấn đề là do ánh sáng của các nhận xét hữu ích của Tư pháp.
Ah vâng, đúng vậy, cảm ơn.Rủi ro và bảo trì sẽ không biến mất, bởi đức tính đơn giản của thực tế đó là một dịch vụ _external_! Nhưng bằng cách thể hiện sự mong đợi của tôi về hành vi của nó, tôi cô lập sự không chắc chắn. –
Liên kết đến 'hai câu trả lời của tôi ở một câu hỏi khác' bị hỏng. Có ai có thể tìm thấy nó đang sống ở đâu không? –
Điều này sẽ hoạt động. http://stackoverflow.com/questions/513778/what-do-you-think-of-junit-style-unit-testing-do-you-favor-behaviour-driven-tes/513807#513807 –