【发布时间】:2017-11-23 10:03:27
【问题描述】:
src/mainDir/mainFile.py
mainFile.py 的内容
import src.tempDir.tempFile as temp
data = 'someData'
def foo(self):
ans = temp.boo(data)
return ans
src/tempDir/tempFile.py
def boo(data):
ans = data
return ans
现在我想从src/tests/test_mainFile.py 测试foo(),我想在foo() 方法中模拟temp.boo(data) 方法
import src.mainDir.mainFile as mainFunc
testData = 'testData'
def test_foo(monkeypatch):
monkeypatch.setattr('src.tempDir.tempFile', 'boo', testData)
ans = mainFunc.foo()
assert ans == testData
但我得到错误
AttributeError: 'src.tempDir.tempFile' 没有属性 'boo'
我希望 ans = testData。
我想知道我是否正确地模拟了我的 tempDir.boo() 方法,或者我应该使用 pytest 的模拟器而不是 monkeypatch。
【问题讨论】:
-
我也有同样的问题。您对此有什么解决方案吗?
标签: python pytest monkeypatching