2013-11-05 54 views
4

我想通過Nancy.Testing.Browser對象傳遞一個路由參數(不是查詢參數!)。 我瞭解(現在)如何發送和消費查詢字符串/從我NancyModule:NancyFx單元測試如何通過測試瀏覽器傳遞瀏覽器路由參數?

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); 
}; 

我怎麼做我通過我的ID參數爲使用Nancy.Testing.Browser路由參數?

- 未使用標題,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?

回答

5

我是一個白癡...我想答案是看似顯而易見的其他人!

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

只要您的查詢字符串/值追加到URL請求爲您正在使用的Nancy.Testing.Browser對象的末尾。

+0

哈哈,南希很容易,有時它的如此明顯,它並不明顯:D – Phill