Можно ли проверить исключительные условия с помощью Ludibrio? - PullRequest
0 голосов
/ 14 октября 2011

Я недавно начал использовать 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 (). Ясно, что это не правильный способ сделать это.

Есть ли способ заставить фиктивный объект вызвать исключение во время выполнения? Или исключение будет перехвачено как сбой и не будет все равно выходить за пределы фиктивного объекта?

1 Ответ

2 голосов
/ 14 октября 2011

Дальнейшее поиск в конечном итоге дало ответ.Просто скажите фиктивному объекту передать исключение.Это, кажется, затем поднимается снаружи:

myMock.test() >> Exception('blah')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...