gpt4 book ai didi

c# - 在 Entity Framework 中测试 View 模型

转载 作者:行者123 更新时间:2023-11-28 21:31:36 25 4
gpt4 key购买 nike

我在 MVC4 的 Entity Framework 工作中生成了一个 CRUD 操作。现在我正在测试那个类(class)。我在 Details 的 Controller 中使用以下代码。

   public ActionResult Details(int id = 0)
{
Member member = db.Members.Find(id);
if (member == null)
{
return HttpNotFound();
}
return View(member);
}

还有我的测试代码,

    [TestMethod]
public void Details()
{
MemberController me = new MemberController();
var mem = new Member();
int id = 1;
var result = (RedirectToRouteResult)me.Details(id);
Assert.AreEqual("Index", result.RouteValues["action"]);
}

在测试时显示,

Test Failed: Details

Message: Test method SampleTest.MemberTest.Details threw exception:

System.InvalidCastException: Unable to cast object of type 'System.web.Mvc.ViewResult' to >type 'System.Web.mvc.RedirectToRoutResult'

谁能帮我找出问题所在?

最佳答案

您从操作中返回一个 ViewResult,并尝试将其转换为 RedirectToRoutResult 测试。


这与 Entity Framework 无关,但我仍然通常避免使用 EF 对象作为模型,原因如下:

  • 难以用属性装饰类(如果您使用数据注释)
  • 序列化几乎总是失败:Member 是一个 Employee,他有一个 Manager,他有一个 Department 房间...它永远不会结束。
  • 当 MVC 在 POST 之后创建和填充您的实体时,更容易出现安全错误。

关于c# - 在 Entity Framework 中测试 View 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19268828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com