3

これは、ナンシーブラウザを認証していることを示す単体テストです(他のコードが削除されています)。これを行うためのよりスマートで乾燥した方法があるかどうか疑問に思いましたか?

[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 に答える