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 когда вы передаете недопустимые параметры конструктору приложения.

  • Запуск подмножества автоматически открытых python unittests
  • Оберните открытый поток с помощью io.TextIOWrapper
  • Рекомендуемые учебники PyUnit?
  • Использование mock для исправления задачи сельдерея в модульных тестах Django
  • Тестирование модуля: убедитесь, что файл / путь существует
  • Тестирование для KeyError
  • Как получить текущее имя тестового теста из testuite в unittest
  • Как насмехаться с клиентом redis в Python?
  • Python, unit test - передать аргументы командной строки setUp unittest.TestCase
  • Отсутствует таблица при запуске Django Unittest с Sqlite3
  • Python / Django: как утверждать, что результат теста блока содержит определенную строку?
  • Python - лучший язык программирования в мире.