В предыдущих статьях я показал вам, как можно легко создать и настроить приложение на NancyFX в соответствии с вашими потребностями.
Однако в настоящее время просто невозможно представить процесс промышленной разработки ПО в отрыве от тестирования.
Давайте добавим проект в наше первое приложение, чтобы протестировать его.
NancyFX предоставляет библиотеку Nancy.Testing для тестирования приложений Nancy, которую мы можем добавлять в наши приложения с помощью NuGet. И так, добавим в решение тестовый проект с нашим первым приложением.
(В этом примере для удобства я буду использовать фреймворк MSTest, этот фреймворк можно легко заменить на nUnit или любой другой тестовый фреймворк, без существенных трудозатрат).
Теперь добавим ссылку на тестируемый проект в наш тестовый проект.
Затем запустите диспетчер пакетов NuGet и добавьте в проект библиотеку 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);
}
}
}
Теперь мы запускаем наш тест в Test Explorer и получаем следующий результат:
Как видите, настройка тестовой среды заняла буквально несколько минут. Теперь вы можете легко добавлять новые тесты во время тестирования вашего приложения.
В заключение хотелось бы сделать краткий анонс последней статьи серии.
Он будет посвящен Nancy.SelfHosting. Спасибо за внимание, жду ваших отзывов и комментариев.
Теги: #ASP.NET #asp.net mvc #asp.net mvc 4 #.
NET
-
От Четырех До Тридцати Двух
19 Oct, 24 -
Эффект Бабочки
19 Oct, 24 -
Выход Phpbb 3.0.6
19 Oct, 24