我想测试一个方法,它内部创建另一个类的实例,我试图嘲笑内部类的创建......这不适合我。我试图将问题复制到一个简化的案例 - 仍然没有去。这里是简化的情况:Python @patch不工作
我有一个名为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())
提前致谢!
看起来不对。无论如何,我试过 - 得到了'ImportError:没有名为goo的模块' –
我不确定它是否需要'pymock'作为'well。 – chepner
与'pymock'一起工作。谢谢!你能解释为什么这是语法吗? –