Python unittest – напротив assertRaises?

Я хочу написать тест, чтобы установить, что Исключение не возникает в данном случае.

Это просто, чтобы проверить, возникает ли исключение …

sInvalidPath=AlwaysSuppliesAnInvalidPath() self.assertRaises(PathIsNotAValidOne, MyObject, sInvalidPath) 

… но как вы можете поступать наоборот .

Что-то вроде этого, что я после …

 sValidPath=AlwaysSuppliesAValidPath() self.assertNotRaises(PathIsNotAValidOne, MyObject, sValidPath) 

5 Solutions collect form web for “Python unittest – напротив assertRaises?”

 try: myFunc() except ExceptionType: self.fail("myFunc() raised ExceptionType unexpectedly!") 

Просто вызовите функцию. Если он вызывает исключение, модульная тестовая среда отметит это как ошибку. Вы можете добавить комментарий, например:

 sValidPath=AlwaysSuppliesAValidPath() # Check PathIsNotAValidOne not thrown MyObject(sValidPath) 

Привет. Я хочу написать тест, чтобы установить, что Исключение не возникает в данном обстоятельстве.

Это предположение по умолчанию – исключения не возникают.

Если вы ничего не говорите, это предполагается в каждом отдельном тесте.

Вам не нужно на самом деле писать какое-либо утверждение для этого.

Я являюсь оригинальным плакатом, и я принял вышеупомянутый ответ DGH, не используя его сначала в коде.

Как только я использовал, я понял, что для этого нужно немного настроить, чтобы на самом деле делать то, что мне было нужно (чтобы быть справедливым к DGH, он или она сказал «или что-то подобное»!).

Я подумал, что стоит публиковать настройки здесь для других:

  try: a = Application("abcdef", "") except pySourceAidExceptions.PathIsNotAValidOne: pass except: self.assertTrue(False) 

Я пытался сделать это, чтобы убедиться, что если попытаться создать экземпляр объекта Application со вторым аргументом пробелов, будет создан pySourceAidExceptions.PathIsNotAValidOne.

Я считаю, что использование вышеуказанного кода (основанного на ответе DGH) будет делать это.

Если вы передадите класс Exception в assertRaises() , будет предоставлен менеджер контекста. Это может улучшить читаемость ваших тестов:

 # raise exception if Application created with bad data with self.assertRaises(pySourceAidExceptions.PathIsNotAValidOne): application = Application("abcdef", "") 

Это позволяет тестировать ошибки в коде.

В этом случае вы проверяете PathIsNotAValidOne когда вы передаете недопустимые параметры конструктору приложения.

  • UnitTest Python издевается над одним вызовом одной функции
  • Как настроить обмен сообщениями и промежуточное ПО сеанса в Django RequestFactory во время модульного тестирования
  • Результат кэширования setUp () с использованием Python unittest
  • Не удалось найти элемент поиска по ссылке
  • Как проверить сообщение журнала при тестировании кода Python под носом?
  • Пропустить unittest, если какое-либо условие в SetUpClass не выполняется
  • Исключение каталога, модуля в nosetest python
  • Как сказать py.test пропустить определенные каталоги?
  • Python - лучший язык программирования в мире.