2010-07-01 20 views
8

Tôi có một chương trình python với một chức năng toàn cầu mà là đau đớn để kiểm tra (nó cần một tập dữ liệu lớn để hoạt động đúng). Cách tốt nhất để giải quyết vấn đề này trong khi thử nghiệm các chức năng gọi nó là gì?Làm thế nào để giả lập một hàm tự do trong python?

Tôi đã tìm thấy các công trình sau (nhưng nó khiến tôi cảm thấy bẩn khi sử dụng nó).

mô-đun foo:

def PainLiesHere(): 
    return 4; #guaranteed to be random 

mô-đun thử nghiệm

import foo 

def BlissLiesHere(): 
    return 5 

foo.PainLiesHere = BlissLiesHere 

# test stuff 

Trả lời

8

Đây là một cách hoàn toàn tốt đẹp để làm điều đó. Chừng nào bạn biết rằng BlissLiesHere không làm thay đổi hành vi tổng thể của đơn vị bạn đang thử nghiệm ...

EDIT:

Đây là những gì đang được thực hiện, dưới tất cả các tính năng bổ sung thoải mái mà họ cung cấp, bởi các loại khác nhau thư viện nhại, chẳng hạn như Mock, Mox, v.v.

Các vấn đề liên quan