Я просто мочу ноги в Нэнси. Я был очень рад видеть процесс тестирования в Wiki, но когда я попробовал следующее, я не смог заставить его работать, сначала пройти тесты.Почему «DefaultNancyBoostrapper» не находит мой NancyModule
Использование VS2010
- Создано
Empty ASP.NET Web Application Project
: Notify.App Install-Package Nancy.Hosting.AspNet
- создал простой модуль, как указано ниже: NotifyModule
- Создано
Class Library
проекта: Notify.UnitTests Install-Package Nancy.Testing
Install-Package XUnit
- Создан простой первый тест: BaseUrlSpec.cs
Использование DefaultNancyBootstrapper
тест терпит неудачу с HttpStatusCode.NotFound
.
Если я заменю bootstrapper
определение с:
var bootstrapper = new ConfigurableBootstrapper(
with =>
with.Module<NotifyModule>());
то тест проходит. Я не понимаю, почему SDHP с использованием DefaultNancyBootstrapper не работал? Я сделал что-то не так, чтобы заставить его сломаться, или мне не хватает деталей в моем понимании?
NotifyModule
using Nancy;
public class NotifyModule : NancyModule {
public NotifyModule() {
Get["/"] = _ => HttpStatusCode.OK;
}
}
BaseUrlSpec
using Nancy;
using Nancy.Testing;
using Notify.App;
using Xunit;
public class BaseUrlSpec
{
[Fact]
public void ShouldRespondOk()
{
var bootstrapper = new DefaultNancyBoostrapper();
var app = new Browser(bootstrapper);
var response = app.Get("/", with => with.HttpRequest());
var statusCode = response.StatusCode;
Assert.Equal(HttpStatusCode.OK, statusCode);
}
}
Христианин верен. Это вещь .NET, а не вещь Нэнси. Если вы должны были выполнить «var foo = typeof (NotifyModule)» в своем тесте, тогда он будет передаваться с «DefaultNancyBootstrapper». Однако в 0.17 мы пытаемся обойти это, загрузив все сборки, которые ссылаются на сборку Нэнси https: // github .com/NancyFx/Nancy/pull/1001 – TheCodeJunkie
Итак, просто наличие моего приложения в качестве одной из «ссылок» в библиотеке тестовых модулей не заставляет Нэнси забирать его. –
Нет, ссылки на сборку недостаточно. Вам нужна ссылка в коде. –