1
Azure가있는 MVC4 프로젝트가 있습니다. 나는 간단한 테스트를 작성하여 사용자 로그인을 확인하려고합니다. 내 로그인 조치가컨트롤러 매개 변수가있는 단위 테스트
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
내 시험 방법 나는이 문제가
[TestMethod]
public void UserValidLoginTest()
{
// Arrange
AccountController controller = new AccountController();
// Act
LogOnModel model = new LogOnModel()
{
UserName = "[email protected]",
Password = "pass1234"
};
var result = controller.LogOn(model, null) as RedirectToRouteResult;
// Assert
Assert.IsNotNull(result);
Assert.AreEqual(result.RouteValues["action"], "Index");
}
로 정의됩니다, 처음도
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
반환 NullReferenceException이와
Url.IsLocalUrl(returnUrl)
그 같은거야. 어떻게 해결할 수 있을까요? 어떻게 테스트 할 수 있습니까? Selenium 또는 Moq와의 통합 테스트를 작성할 수도 있지만 Azure로 테스트하는 방법을 모르겠습니다. 어떤 아이디어이 문제에 접근하는 방법?
정적 클래스 테스트는 어렵습니다. 이러한 객체에 대한 인터페이스를 사용할 수 있습니까? 그런 다음 인터페이스를 조롱하십시오. – Joe
예제를 사용할 수 있습니까? 나는 그것을하는 어떤 유용한보기든지 찾아 내지 않는다. – FrEaKmAn