3

这是一个单元测试,显示我正在验证我的 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("/");
}
4

1 回答 1

4

看起来您有一个返回 Browser 实例的方法: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;
}
于 2012-05-08T10:49:27.547 回答