我试图模仿一种方法,但遇到了一些问题
mock
实际上覆盖了它。
app/tests/test_file.py<-包含单元测试,当前使用:
@mock.patch('app.method', return_value='foo')
def test(self, thing):
...
do some stuff with app/main/server.py
and get its response, assert a few values
...
assert 'foo' is in return value of some stuff
正在模拟的方法正由server.py调用的另一个文件调用。
-
app/main/server.py<-单元测试实际与什么交互
-
app/main/route.py<-调用模拟方法的位置
-
app/main/thing.py<-包含要模拟的方法
这是使用python 2.7的,每个包都有一个init文件。父文件夹(app)包含每个类和方法的导入。我试过了
app.method
这不会带来问题,但不起作用。我试过了
thing.method
,引发错误。我试过了
app.main.thing.method
什么都不做。
我已经在这个相同的测试套件中成功模拟了一个对象及其方法之一,但是这个对象是直接在server.py文件中创建和使用的。我想知道这是否是因为被调用的方法在链的最下面。嘲笑对我来说很神奇,尤其是在巨蟒身上。