Хорошо, вот хороший тест: когда вы регистрируете нового пользователя, вы хотите убедиться, что он будет автоматически подписан на сайте, поэтому ему не нужно вводить свое имя пользователя и пароль снова.
Тест будет выглядеть примерно так:
public void AutomaticallySignedInAfterRegistering()
{
var membershipService = new Mock<IMembershipService>();
var formsService = new Mock<IFormsAuthenticationService>();
RegisterModel newUser = new RegisterModel();
newUser.UserName = "John"
newUser.Email = "john@somewhere.com"
newUser.Password = "p@ss";
newUser.ConfirmPassword = "p@ss";
membershipService.Setup(x => x.CreateUser("John", "p@ss", "john@somewhere.com")).Returns(MembershipCreateStatus.Success);
AccountController controller = new AccountController();
controller.FormsService = formsService.Object;
controller.MembershipService = membershipService.Object;
controller.Register(newUser);
formsService.Verify(x => x.SignIn("John", false), Times.Once());
}
Ключом здесь является метод Verify.Это работает так же, как Assert.В этом случае вы проверяете, что метод SignIn был вызван ровно один раз.Это пример того, как использовать макеты, чтобы проверить, работает ли контроллер учетных записей должным образом.