Есть метод действия который регистрирует пользователя. Что бы не засорять модель, вынес подтверждения пароля как отдельное поле в представлении. В итоге это значение получаю через Request.Form["Повторите пароль"]
Часть метода действия:
if (user.Password == Request.Form["Повторите пароль"] && ModelState.IsValid)
{
TempData["Message"] = "Регистрация прошла успешно! Можете логиниться";
repository.Add_New_User(user);
return Redirect("/Account/Login");
}
И вот начал я писать тест и как мне задать вот этот Request.Form
:
[TestMethod]
public void Registr_Error(
{
User testUser = new User()
{
LoginUser = "IlyaLogin",
Password = "IlyaPassword"
};
Mock<IUsersRepository> mock = new Mock<IUsersRepository>();
mock.Setup(m => m.Users).Returns(new User[] {
new User { LoginUser = "Vova", Password="123123"},
testUser
}.AsQueryable());
AccountController target = new AccountController(mock.Object, null);
ViewResult result = (ViewResult)target.Registr(testUser, null);
Assert.AreEqual("Registr", result.ViewName);
Assert.IsFalse(result.ViewData.ModelState.IsValid);
}
Mock<HttpRequestBase> request = new Mock<HttpRequestBase>();
request
.Setup(request => request.Form)
.Returns(new FormCollection { { "Повторите пароль", "Password" } });
Mock<HttpContextBase> context = new Mock<HttpContextBase>();
context
.SetupGet(c => c.Request)
.Returns(request.Object);
Controller controller = new Controller(); // System Under Test
controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Добрый день! На текущий момент реализована следующая схема: В MySQL хранится 4 таблицы: