我正在尝试测试在其中创建另一个类的实例的方法,我正在尝试模拟内部类的创建……这对我不起作用。我尝试将问题简化为简化的案例-仍然行不通。这是简化的情况:
我有一个名为pymock
的目录,其中包含__init__.py
。除此之外,还有以下3个文件:
foo.py
#!/usr/bin/python
class Foo(object):
def foo1(self):
return 1
goo.py
#!/usr/bin/python
from foo import Foo
class Goo(object):
def goo1(self):
f = Foo()
return f.foo1()
goo_test.py
#!/usr/bin/python
from mock import patch, Mock
from nose.tools import assert_equal
from goo import Goo
class TestGoo(object):
def setup(self):
self.goo = Goo()
@patch('pymock.foo.Foo', autospec=True)
def test_goo1(self, foo1_mock):
foo_instance = Mock()
foo1_mock.return_value = foo_instance
foo_instance.foo1.return_value = 11
assert_equal(11, self.goo.goo1())
提前致谢!
最佳答案
您需要修补goo
使用的名称。
@patch('pymock.goo.Foo', autospec=True)