【发布时间】:2017-04-05 19:11:37
【问题描述】:
我在测试中遇到从函数引发异常的问题:
### 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() 函数来引发错误。
我在 SO 上找到了几个示例,但没有一个符合我的需要。
【问题讨论】:
-
您确定在正确的位置进行修补(导入位置,而不是导入 from 的位置)?
-
我认为我在正确的位置进行了修补,因为我的其他测试按预期工作。
-
side_effect() 支持引发异常。也许你修补了错误的对象。
标签: python unit-testing exception mocking