...

суббота, 23 ноября 2013 г.

Создаем первое приложение на 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.

Спасибо за внимание, жду Ваших отзывов и замечаний.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


Комментариев нет:

Отправить комментарий