【发布时间】:2017-12-16 22:13:57
【问题描述】:
你能帮我写一下这个方法的 UnitTest 吗?我尝试了几种方法,但都无法解决。
public ActionResult ChangePass()
{
if (Request.IsAuthenticated)
{
return View();
}
else
{
return RedirectToAction("Index", "Index", new { area = "" });
}
}
这是我想要做的。
[TestMethod]
public void ChangePass()
{
var identity = new GenericIdentity("admin@gmail.com");
var controller = new ProfilePageController();
var controllerContext = new Mock<ControllerContext>();
var principal = new Mock<IPrincipal>();
principal.Setup(p => p.IsInRole("user")).Returns(true);
principal.SetupGet(x => x.Identity.Name).Returns("admin@gmail.com");
controllerContext.SetupGet(x => x.HttpContext.User).Returns(principal.Object);
controller.ControllerContext = controllerContext.Object;
NUnit.Framework.Assert.AreEqual(controller.ChangePass(), identity.Name);
}
【问题讨论】:
-
请不要让我们为您编写解决方案。发布您的一些尝试和您遇到的具体问题。我们将帮助您将不可行的解决方案改造成可行的解决方案,而不是从头开始。
-
我发布了我的尝试代码
-
当您运行现有的单元测试时,它是否有效?
-
不,它没有
-
你能详细说明它在什么方面不起作用吗?它不编译吗?它在运行时是否给出异常?还有什么?
标签: c# unit-testing