Создание Первого Приложения На Nancyfx, Часть Пятая. Тестирование Приложений

В предыдущих статьях я показал вам, как можно легко создать и настроить приложение на NancyFX в соответствии с вашими потребностями.

Однако в настоящее время просто невозможно представить процесс промышленной разработки ПО в отрыве от тестирования.

Давайте добавим проект в наше первое приложение, чтобы протестировать его.

NancyFX предоставляет библиотеку Nancy.Testing для тестирования приложений Nancy, которую мы можем добавлять в наши приложения с помощью NuGet. И так, добавим в решение тестовый проект с нашим первым приложением.

(В этом примере для удобства я буду использовать фреймворк MSTest, этот фреймворк можно легко заменить на nUnit или любой другой тестовый фреймворк, без существенных трудозатрат).



Создание первого приложения на NancyFX, часть пятая.
</p><p>
 Тестирование приложений

Теперь добавим ссылку на тестируемый проект в наш тестовый проект.

Создание первого приложения на NancyFX, часть пятая.
</p><p>
 Тестирование приложений

Затем запустите диспетчер пакетов NuGet и добавьте в проект библиотеку Nancy.Testing.

Создание первого приложения на NancyFX, часть пятая.
</p><p>
 Тестирование приложений

Нам нужно добавить в тестовый проект класс, реализующий интерфейс IRootPathProvider. Сразу скажу, что это связано с ошибкой, возникающей при запуске тестов NancyFX совместно с фреймворком MSTest. При работе с фреймворком nUnit добавление этого класса не требуется.

И поэтому добавляем TestRootPathProvider, единственный метод которого должен возвращать абсолютный путь к тестируемому проекту.

Код провайдера должен выглядеть следующим образом:

  
   

using Nancy; namespace NancyTestProject { public class TestRootPathProvider : IRootPathProvider { public string GetRootPath() { return @"C:\.

\GitHub\NancyFxApplication\NancyFxApplication"; } } }

Теперь добавляем в проект новый тест. В параметрах загрузчика мы должны указать, какой модуль мы будем тестировать, а также указать провайдера пути к тестируемому проекту, который мы определили ранее.

Далее в тестовом коде мы создаем экземпляр класса Browser, с помощью которого мы можем вызывать наше приложение.

Далее идет блок проверки, где мы будем использовать утверждения для проверки корректности работы нашего модуля.



using Microsoft.VisualStudio.TestTools.UnitTesting; using Nancy; using Nancy.Testing; using NancyFxApplication; namespace NancyTestProject { [TestClass] public class NancyTest { [TestMethod] public void simplest_get_test() { var bootstrapper = new ConfigurableBootstrapper(with => { with.Module<NancyFxModule>(); with.RootPathProvider<TestRootPathProvider>(); }); // Given var browser = new Browser(bootstrapper); // When var result = browser.Get("/", with => { with.HttpRequest(); }); // Then Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); } } }

Теперь мы запускаем наш тест в Test Explorer и получаем следующий результат:

Создание первого приложения на NancyFX, часть пятая.
</p><p>
 Тестирование приложений

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

В заключение хотелось бы сделать краткий анонс последней статьи серии.

Он будет посвящен Nancy.SelfHosting. Спасибо за внимание, жду ваших отзывов и комментариев.

Теги: #ASP.NET #asp.net mvc #asp.net mvc 4 #.

NET

Вместе с данным постом часто просматривают: