gpt4 book ai didi

python - 属性错误 : while using monkeypatch of pytest

转载 作者:行者123 更新时间:2023-12-04 16:44:58 24 4
gpt4 key购买 nike

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() 并且我想模拟 temp.boo(data) foo() 方法中的方法

 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' has no attribute 'boo'

我希望 ans = testData。

我想知道我是否正确地模拟了我的 tempDir.boo() 方法,或者我应该使用 pytest 的 mocker 而不是 monkeypatch。

最佳答案

您要告诉 monkeypatch 修补您传入的字符串对象的属性 boo

您要么需要传入一个模块,如 monkeypatch.setattr(tempFile, 'boo', testData),要么也将属性作为字符串传递(使用双参数形式) ,比如 monkeypatch.setattr('src.tempDir.tempFile.boo', testData)

关于python - 属性错误 : while using monkeypatch of pytest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44660196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com