我正在我的应用程序中运行一个自托管的NancyFX Web服务器.现在我有一个托管的模块:
public class MetricsModule : NancyModule
{
private IStorageEngine _storageEngine;
public MetricsModule(IStorageEngine storageEngine) : base("/metrics")
{
_storageEngine = storageEngine;
Get["/list"] = parameters =>
{
var metrics = _storageEngine.GetKnownMetrics();
return Response.AsJson(metrics.ToArray());
};
Get["/query"] = parameters =>
{
var rawStart = parameters.start;
var rawEnd = parameters.end;
var metrics = parameters.metrics;
return Response.AsJson(0);
};
}
}
Run Code Online (Sandbox Code Playgroud)
我的Bootstrapper类是:
public class OverlookBootStrapper : DefaultNancyBootstrapper
{
private readonly IStorageEngine _storageEngine;
public OverlookBootStrapper(IStorageEngine storageEngine)
{
_storageEngine = storageEngine;
}
protected override void ConfigureApplicationContainer(TinyIoCContainer container)
{
container.Register(_storageEngine); …Run Code Online (Sandbox Code Playgroud) 我有一个简单的南希模块.我想将查询字符串(qs)参数传递给处理程序.如果我没有任何qs参数,一切都很好.一旦我添加了一个参数,我就会收到一个404状态代码.
NancyModule
public class SimpleModule : NancyModule
{
public SimpleModule()
{
Get["/"] = parameters => HttpStatusCode.OK;
}
}
Run Code Online (Sandbox Code Playgroud)
单元测试 - 通行证
[Fact]
public void SimpleModule__Should_return_statusOK_when_passing_query_params()
{
const string uri = "/";
var response = Fake.Browser().Get(uri, with => with.HttpRequest());
response.StatusCode.ShouldBe(HttpStatusCode.OK);
}
Run Code Online (Sandbox Code Playgroud)
单元测试 - 失败
[Fact]
public void SimpleModule__Should_return_statusOK_when_passing_query_params()
{
const string uri = "/?id=1";
var response = Fake.Browser().Get(uri, with => with.HttpRequest());
response.StatusCode.ShouldBe(HttpStatusCode.OK);
}
Run Code Online (Sandbox Code Playgroud)
谢谢