是否可以使用Ludibrio测试异常条件?

2024-09-27 07:28:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近开始使用Ludibrio在单元测试中模拟对象。到目前为止,它似乎很精简,但我似乎在测试一些失败场景时遇到了障碍,似乎无法在网上找到解决方案。在

我正在处理的一些方法调用引发了我想要捕获的异常。所以我希望我的模拟对象通过在特定调用上引发异常来模拟这些条件。我试着这样做:

from ludibrio import *

with Mock() as myMock:

    def raiseException():
        raise Exception('blah')

    myMock.test() >> raiseException()

try:
    print myMock.test()
except Exception, e:
    print 'Error: %s' % e

myMock.validate()

问题是,raiseException()是在生成模拟对象时计算的,而不是在何时计算的我的模拟测试()被调用。所以很明显这不是正确的方法。在

有没有办法让模拟对象在运行时引发异常?或者,异常会被截获为一个失败,并且无论如何都不会离开模拟对象?在


Tags: 对象方法fromtest场景exception单元测试解决方案

热门问题