【发布时间】:2011-10-04 06:05:42
【问题描述】:
在控制器中
var roles = Roles.GetAllRoles();
单元测试调用失败 并在
LogOnTest()(Error message is "The Role Manager feature has not been enabled.")
您能否告诉我我的测试功能是否正确或需要更多的逻辑/功能测试?
[TestMethod]
public void LogOnTest()
{
var target = new AccountController();
var membershipMock = MockRepository.GenerateMock<AccountMembershipService>();
var formsMock = MockRepository.GenerateMock<IFormsAuthenticationService>();
target.FormsService = formsMock;
target.MembershipService = membershipMock;
var model = new LogonModel() { USERNAME= "aa", Password = "aa"};
string returnUrl = null;
bool isLoginSuccess = true;
var actual = target.LogOnFromUser(model);
if (actual == null)
Assert.Fail("should have redirected");
}
控制器:
public ActionResult LogOn(LogonModel model)
{
if(MembershipService.ValidateUser(model.UsernName, model.Password))
{
FormsService.SignIn(model.UsernName, true);
var roles = Roles.GetAllRoles(); //Roles got failed here
return RedirectToAction("Index", "Event");
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View("LogOn", model);
}
【问题讨论】:
-
如果您发现一个有用的答案,您应该投票给它(点击答案左上角的向上箭头),如果它回答了您的问题,您也应该通过点击勾选标记也在答案的左上角