Я недавно начал использовать 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()
Проблема в том, что метод поднимать исключение () оценивается при создании фиктивного объекта, а не при вызове myMock.test (). Ясно, что это не правильный способ сделать это.
Есть ли способ заставить фиктивный объект вызвать исключение во время выполнения? Или исключение будет перехвачено как сбой и не будет все равно выходить за пределы фиктивного объекта?