这是一个单元测试,显示我验证我的Nancy浏览器(其他代码已被删除)。我想知道是否有更聪明,干燥的方法来做到这一点?
[Fact]
public void Login__Should_redirect_from_login_to_requested_page_if_credentials_are_correct()
{
var browser = Fake.Browser();
var response = browser.Post("/login", with =>
{
with.HttpRequest();
with.FormValue("UserName", userName);
with.FormValue("Password", password);
});
response.ShouldHaveRedirectedTo("/");
}
答案 0 :(得分:4)
看起来你有一个方法可以传递一个浏览器实例:Fake.Browser()
所以为什么不重写这个以提供经过身份验证的版本(如果需要)。也许是这样的事情:
public static Browser Browser(string username = null, string password = null)
{
var browser = new Browser(new UnitTestBootstrapper());
if (username.IsEmpty() || password.IsEmpty()) return browser;
return browser.Post("/login", with =>
{
with.HttpRequest();
with.FormValue("Username", username);
with.FormValue("Password", password);
}).Then;
}