ASP.NET MVC - PasswordLength во встроенном модульном тесте - PullRequest
0 голосов
/ 24 октября 2010

Почему последнее утверждение в этом встроенном модульном тесте в проекте ASP.NET MVC 2 прошло?

//File: AccountControllerTest.cs

    [TestMethod]
    public void ChangePassword_Get_ReturnsView()
    {
        // Arrange
        AccountController controller = GetAccountController();

        // Act
        ActionResult result = controller.ChangePassword();

        // Assert
        Assert.IsInstanceOfType(result, typeof(ViewResult));
        Assert.AreEqual(10, ((ViewResult)result).ViewData["PasswordLength"]);
    }

Разве ViewData ["PasswordLength"] не должно быть 6? Если вы посмотрите в проекте Web.config, minRequiredPasswordLength имеет значение 6, а не 10.

//File: Web.config

<membership>
    <providers>
        <add name="AspNetSqlMembershipProvider" ... minRequiredPasswordLength="6" ... />
    </providers>
</membership>

1 Ответ

0 голосов
/ 24 октября 2010

Посмотрите внимательно на метод GetAccountController (). Он создает экземпляр AccountController, где IMembershipService указывает на MockMembershipService, который имеет следующий код:

public int MinPasswordLength {
  get { return 10; }
}

(В приложении по умолчанию MVC 2 это определяется в AccountControllerTest.cs, строки 290 и 332.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...