2012-02-15 18 views
6

Tôi không muốn tạo các tệp thực trong unittest của mình. Vì vậy, tôi thấy mình thường leng keng với bản mẫu vô nghĩa và tạo ra các nhà máy mô phỏng cho các tệp giả. Tôi đã tự hỏi nếu nó sẽ không được đẹp hơn để tránh (trong trường hợp này) những nỗ lực vô nghĩa và cố gắng một cái gì đó giống như trong phạm vi của một phương pháp unittest địa phương:Khỉ-vá một hàm dựng sẵn cho một đơn vị kiểm tra?

open = lambda x: StringIO() 

này sẽ được ok? Hoặc có những vấn đề lớn/không có vấn đề gì trong cách tiếp cận này và tốt hơn là của các nhà máy sản xuất giả?

Trả lời

4

Điều này là tốt, miễn là bạn hiểu cách hoạt động của phạm vi python (tức là tại địa phương là tốt, toàn cầu sẽ gây ra vấn đề). Bạn có lẽ cũng nên xem xét rằng khỉ của bạn sẽ có chế độ thất bại khác nhau từ bản gốc, và có các bài kiểm tra thích hợp để đảm bảo rằng mã của bạn tương tác chính xác với nội trang dựng sẵn.