1
私はこれらのファイルを持っている: Pythonで別のクラスからインポートしたクラスメソッドの戻り値をモックする方法は?
from foo2 import Foo2
class Foo(object):
def GetFoo2(self):
f = Foo2()
return f.Get()
とfoo2.pyで
、私が持っている:foo.pyで/foo.py
/foo2.py
/test_food.py
を、私はこれを持っている
class Foo2(object):
def __init__(self):
self.myvar = "eeee"
def Get(self):
return self.myvar
test_foo.pyで、
import os, sys, json, pytest
from mock import *
from foo import Foo
def test_foo_ok(monkeypatch):
monkeypatch.setattr(Foo, "GetFoo2", lambda x:"abc")
f = Foo()
result = f.GetFoo2()
assert result == "abc"
だから、test_foo.pyでは、メソッドGetFoo2()を模擬したり、モンキーにしたりできます。しかし、その代わりに、foo2のGet()メソッドの戻り値をfoo.pyとfoo2.pyのコードを変更せずに、test_foo.pyからどうやって嘲ることができますか?
私はそれを試してみましたし、私はmonkeypatch.setattr(...)で、このエラーを得た: はImportError:pytestのFOO – murvinlai
@murvinlaiどのバージョンという名前のモジュール?私は2.9.1でこれを説明した名前の他のファイルを使ってテストしました。 – jordanm