S.Lott ответ неправильный: self.fail()
само вызывает исключение, которое затем будет вызвано исключением в следующей строке:
class NetworkConfigTest1(unittest.TestCase):
def runTest(self):
try:
NetworkConfig("192.168.256.0/24")
self.fail("Exception expected but not thrown")
except Exception, error:
printf("Exception caught: %s" % str(error)
pass
Вывод был «Исключение ожидалось, но не было сгенерировано», но модульный тест не был помечен как сбой, хотя тестируемый код не был написан!
Более правильный способ проверить, вызывает ли метод исключение, - использовать:
self.failUnlessRaises([error], [callable], [arguments to callable])
В моем случае класс, который я тестирую, называется NetworkConfig
, и конструктор должен вызвать исключение, если сетевой дескриптор недопустим. И что сработало:
class NetworkConfigTest1(unittest.TestCase):
def runTest(self):
self.failUnlessRaises(Exception, NetworkConfig, "192.168.256.0/24")
Работает как нужно и выполняет правильный тест.