Создаем первое приложение на NancyFX часть пятая. Тестирование приложения

от автора

В предыдущих статьях я продемонстрировал Вам как можно с легкостью создать и сконфигурировать под свои нужды приложение на NancyFX. Однако в нынешнее время преставить себе процесс промышленной разработки програмного обеспечения в отрыве его от тестирования просто не возможно. Давайте добавим к нашему первому приложению проект для его тестирования.

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

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

Далее запустим NuGet Package Manager и добавим в проект библиотеку Nancy.Testing

Нам надо добавить в тестовый проект класс реализующий интерфейс 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);         }     } } 

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

Как видите настройка тестового окружения заняла буквально несколько минут. Теперь же вы можете с легкостью добавлять новые тесты, тестируя ваше приложение. В завершении хотелось бы сделать краткий анонс последней статьи цикла. Она будет посвящена Nancy.SelfHosting.
Спасибо за внимание, жду Ваших отзывов и замечаний.

ссылка на оригинал статьи http://habrahabr.ru/post/203346/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *