2
Mockモジュールを使用するメソッドへの呼び出しのサブセットのみをモックしたいと思います。だから、メソッドへのすべての呼び出しのサブセットのみをモックする
fubar = Fubar()
fubar.myMethod = Mock()
funar.myMethod.return_value = [fubar.myMethod(), 'MyMOck', fubar.MyMethod]
はmyMethod
第一及び第三の時間readメソッドを呼び出しますが、2番目の呼び出しで、モックメソッドを呼び出します。私がこれをしたい理由は、競合状態をチェックすることです:中間のコールは、最初のコールより早く戻って、いくつかの問題を引き起こすはずです。少なくとも、私はそれをこのようにすることができることを願っています。
これは可能ですか?もしそうなら、どうですか?そうでない場合は、どうしてですか?これはmyMethod
が引数をとらないことを前提としてい
fubar = Fubar()
myMethod = fubar.myMethod # note instance fubar, resulting in a bound method.
fubar.myMethod = lambda self, calls = [myMethod, (lambda: 'MyMock'), myMethod]: calls.pop()()
:これはどのように
_earth_にあなたがそれをしたいと思うのはなぜ?あなたがその方法をテストしているか、そうでないかのどちらかです。 – katrielalex
@katrielalex:ありがとう。私はメインポストを編集しました。 – Sardathrion