2017-12-08 11 views
0

私はいくつかのテストをしていますが、私は関数の引数を模擬したいと思います。例えばpytestのキーワード引数を置換する

私はのような機能を持って:

def foo(arg1, arg2): 
    'do something' 

と、その関数の呼び出し:私が代わりに2の3を使用するように何とかそれをモンキーパッチしたい

foo(1, 2) 

が可能ということですか?

のようなものが試さ:

monkeypatch.setattr('foo', partial(foo, arg2= 3)) 

をしかし、私は型エラーを得た:キーワード引数 'arg2に'

任意のアイデアのために複数の値を得た()fooがどのようにこの問題を解決するために?

+0

それはあなたが間接的にFOOをテストしている、とあなたはfooへの呼び出しを変更しようとしているようです。 1. def test_bar'を表示するように編集してください。2. def fooに加えて 'foo'が呼び出される場所(' bar'おそらく?)があります。おそらくfooを直接テストしてから、 'bar'に依存性注入を使うべきでしょう。 – Zak

答えて

1

することはでき単に機能別名:

old_foo = monkeypatch.foo 
def foo(arg1, arg2): 
    return old_foo(arg1, 3) 

monkeypatch.foo = foo 
+0

うわー、OFC、とてもシンプルです.... – PapeK24

関連する問題