2017-11-27 8 views
0

mockライブラリでいくつかの関数をラップして、(func.call_countなどの)便利な模擬機能をすべて持ち、関数の実行にパッチを当てることはできませんか?call_countや他のスタッフが実際に実行されている機能を模擬する方法は?

+0

モックモジュールとはどういう意味ですか?それはそれ以上です。何もしないモジュールだけ?または、図書館を模倣していますか? – mrCarnivore

+0

@mrCarnivore私はunittest.mockライブラリを意味します(編集済み) –

+0

はい、それが 'Mock'の' wraps'引数のためのものです。 – chepner

答えて

1

wrapsパラメータを使用します。あなたのモックに明示的にreturn_value属性を設定していない限り、モックはラップされたものが返すものを返します。モックで属性を使用すると、アクセスはラップされたオブジェクトにパススルーされ、返された値はのモックオブジェクトにラップされます。

side_effectパラメータを使用することもできます。関数の場合、モックはモック関数と同じ引数で与えられた関数を呼び出し、モック関数は与えられた関数が返すものを返します。

def wrapped_function(): 
    pass 

wrapper = Mock(side_effect=wrapped_function) 
関連する問題