我在测试中遇到从函数引发异常的问题:
### Implemetation
def MethodToTest():
myVar = StdObject()
try:
myVar.raiseError() # <--- here
return True
except Exception as e:
# ... code to test
return False
### Test file
@patch('stdLib.StdObject', autospec=True)
def test_MethodeToTest(self, mockedObjectConstructor):
mockedObj = mockedObjectConstructor.return_value
mockedObj.raiseError.side_effect = Exception('Test') # <--- do not work
ret = MethodToTest()
assert ret is False
我想raiseError()
函数引发错误。
我在上面找到了几个例子,但没有一个符合我的需要。
好吧,你提供的答案是有效的,但你改变了你的做法(这很好)。若要修复原始问题,需要将函数指定给副作用,而不是结果或对象:
希望能有所帮助。注意,如果目标方法使用args,那么副作用也需要使用args(我相信)。
我变了
到
并删除了
# <--- do not work
行。现在开始工作了。
This就是一个很好的例子。
编辑:
同样有效。
相关问题 更多 >
编程相关推荐