2010-07-01 18 views
8

Sınamak için ağrılı bir global işlevi olan bir python programım var (düzgün çalışması için büyük bir veri kümesine ihtiyaç var). Bunu çağıran fonksiyonları test ederken bunu aşmanın en iyi yolu nedir?Python'da serbest bir işlevle nasıl alay edilir?

Aşağıdakilerin çalıştığını buldum (ancak kullanmak beni kirli hissettiriyor).

modül foo:

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

modül testi

import foo 

def BlissLiesHere(): 
    return 5 

foo.PainLiesHere = BlissLiesHere 

# test stuff 

cevap

8

Bu bunu yapmak için mükemmel iyi bir yoldur. Sürece BlissLiesHere test ettiğiniz birimin genel davranışını ... değişmediğini biliyoruz

DÜZENLEME:

Bu, farklı türde tarafından, sağladıkları tüm güzel ekstralar altında yapılıyor budur Mock, Mox, vb gibi alay eden kitaplıkların oluşturulması

İlgili konular