Python unittest: как я тестирую аргумент в Исключения?

В Swift 3 используйте

DispatchQueue.main.async {
    self.tableView.reloadData()
}
5
задан lesmana 17 May 2012 в 17:37
поделиться

2 ответа

Вот так.

>>> try:
...     raise UnrecognizedAirportError("func","arg1","arg2")
... except UnrecognizedAirportError, e:
...     print e.args
...
('func', 'arg1', 'arg2')
>>>

Ваши аргументы находятся в args , если вы просто подклассифицируете Exception .

См. http://docs.python.org/library/exceptions.html#module-exceptions

Если класс исключения является производным от стандартный корневой класс BaseException, связанное значение присутствует как атрибут args экземпляра исключения.


Edit Bigger Example.

class TestSomeException( unittest.TestCase ):
    def testRaiseWithArgs( self ):
        try:
            ... Something that raises the exception ...
            self.fail( "Didn't raise the exception" )
        except UnrecognizedAirportError, e:
            self.assertEquals( "func", e.args[0] )
            self.assertEquals( "arg1", e.args[1] )
        except Exception, e:
            self.fail( "Raised the wrong exception" )
11
ответ дан 13 December 2019 в 05:41
поделиться

assertRaises немного упрощен и не позволяет вам проверять детали вызванного исключения, выходящие за пределы его принадлежности к указанному классу. Для более детального тестирования исключений вам необходимо «прокрутить свое собственное» с помощью блока try / except / else (вы можете сделать это раз и навсегда в методе def assertDetailedRaises вы добавляете в свой собственный общий подкласс тестового примера unittest, затем все ваши тестовые примеры наследуют ваш подкласс вместо unittest).

1
ответ дан 13 December 2019 в 05:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: