Как написать тест NUnit для надстройки NUnit?

Я работаю над вариантом ответа о переполнении стека, которое обеспечивает надежную очистку тестов. Как вы пишете модульные тесты для дополнений NUnit?

Изучив, как NUnit самостоятельно тестирует, я определил:

  • Вы можете написать проходящие тесты, которые проверяют правильное поведение NUnit для неудачных тестов.
  • Вы пишете модульные тесты для тестовых приборов в отдельной сборке (в противном случае тестируемые приборы будут выполняться с вашими юнит-тестами)
  • Используйте NUnit.TestUtilities.TestBuilder для создания приборов и вызова метода TestSuite.Run.

То, что я не вижу, это какие-либо тесты процесса надстройки. У меня есть ошибки, возникающие между установкой и выполнением. Как бы я реализовал модульный тест следующим образом?

  • IAddin.Install
  • ITestDecorator.Decorate

2 ответа

Решение

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

http://www.bryancook.net/2009/09/testing-nunit-addins-from-within-nunit.html

Иногда проще всего запустить интеграционные тесты. Прошло много времени с тех пор, как я поиграл с API-интерфейсом надстроек NUnit, поэтому я не могу точно сказать, какие бывают модульные тесты для механизма расширяемости. Если вы просмотрели исходный код NUnit и не нашли его, то, я думаю, это не то, что было протестировано или даже написано с использованием TDD.

Как я уже говорил, иногда проще просто запустить интеграционные тесты. Пусть ваш аддон, например, распечатает что-то в потоке вывода, и ваш тест подтвердит, что было написано точное сообщение. Таким образом, вы можете проверить, что установка и инициализация вашего плагина прошла успешно.

Надеюсь, это поможет...

Другие вопросы по тегам