既存のAccountController(MVC製)を使用したログオンメソッドのテストで問題が発生しました...
私はこの簡単なテスト方法を持っています:
[TestMethod]
public void LogOnTest1() {
AccountController controller = new AccountController();
LogOnModel logonModel = new LogOnModel();
logonModel.UserName = "test";
logonModel.Password = "test1234";
if ( controller.MembershipService == null ) {
controller.MembershipService = new AccountMembershipService();
}
if ( controller.FormsService == null ) {
controller.FormsService = new FormsAuthenticationService();
}
var result = controller.LogOn( logonModel, "" ) as ViewResult;
Assert.AreEqual( "Index", result.ViewName );
}
およびで定義されたメソッドAccountController
:
[HttpPost]
public ActionResult LogOn( LogOnModel model, string returnUrl ) {
if ( ModelState.IsValid ) {
if ( MembershipService.ValidateUser( model.UserName, model.Password ) ) {
FormsService.SignIn( model.UserName, model.RememberMe );
if ( !string.IsNullOrEmpty( returnUrl ) ) {
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 );
}
上記の方法は私が定義/変更したものではありません。asp.netmvcプロジェクトを作成するときに作成されました。
問題はラインにあります
if ( MembershipService.ValidateUser( model.UserName,model.Password ) ) {
正しいログイン情報を提供しましたが、これは常にfalseを返します。
私の間違いはどこにありますか?