NancyFx单元测试如何通过测试浏览器传递浏览器路由参数?

时间:2013-11-05 00:53:28

标签: unit-testing nancy

我试图通过Nancy.Testing.Browser对象传递一个路由参数(不是Query Paramter!)。 我理解(现在)如何向/从我的NancyModule发送和使用查询字符串:

var customerResponse = browser.Get("/customer/id", with =>
{
    with.HttpRequest();
    with.Query("{id}", alansIdGuid.ToString());
});

...

Get["/customer/{id}"] = parameters =>
{
    string idFromQuery = Request.Query.id;
    Customer customerFromId = _customerRepo.GetCustomerById(idFromQuery);
    return Response.AsJson<Customer>(customerFromId);
};

但是 - 我想要做的就是点击我的路线并检索我的路线参数,如下所示:

Get["/customer/{id}"] = parameters =>
{
    string id = parameters.id;
    Customer customerFromId = _customerRepo.GetCustomerById(id);
    return Response.AsJson<Customer>(customerFromId);
};  

如何使用Nancy.Testing.Browser将我的Id参数作为路径参数传递?

- 没有使用标题,Cookie或查询字符串?

这是一个3小时的搜索看似简单的任务!以下问题围绕这个问题展开,但没解决它:

Send parameter to Nancy module from test

NancyFX: Routes with query string parameters always returns a 404 NotFound

Why are no query parameters being passed to my NancyFX module?

1 个答案:

答案 0 :(得分:5)

我是个白痴......我猜其答案对其他人来说似乎很明显!

var customerResponse = browser.Get("/customer/" + alansIdGuid.ToString(), with =>
{             
    with.HttpRequest();
});

只需将查询字符串/值附加到您正在使用的Nancy.Testing.Browser对象的请求URL的末尾。