我只是在南希弄湿了脚。我很高兴看到Wiki中的测试过程,但是当我尝试以下操作时,我无法通过测试来完成测试。
使用VS2010
Empty ASP.NET Web Application Project
:Notify.App Install-Package Nancy.Hosting.AspNet
Class Library
项目:Notify.UnitTests Install-Package Nancy.Testing
Install-Package XUnit
使用DefaultNancyBootstrapper
测试失败并显示HttpStatusCode.NotFound
。
如果我将bootstrapper
定义替换为:
var bootstrapper = new ConfigurableBootstrapper(
with =>
with.Module<NotifyModule>());
然后测试通过。我不明白为什么使用DefaultNancyBootstrapper的SDHP不起作用?我做错了什么让它破裂,还是我在理解中遗漏了细节?
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);
}
}
答案 0 :(得分:6)
您需要确保加载包含路线的装配。引用程序集中的类型可确保这一点,因此使用可配置引导程序的版本可以正常工作。 要使另一个工作,只需在程序集中添加对某些类型的引用。无需实例化它。