【发布时间】:2012-01-10 17:14:19
【问题描述】:
假设我有以下控制器:
//
// GET: /Courses/Edit/5
public ActionResult Edit(int id)
{
Course course = courseService.GetCourseByID(id);
if (course != null && course.userCanAccess())
{
// Do stuff...
}
}
if 语句被设计为一种简单的检查,以确保用户可以继续执行操作。 Course 实体本身提供了确定用户是否可以访问它的逻辑。这很好用,但确实让我遇到了一个问题:如何测试控制器。
我需要一种方法来确保 course.userCanAccess() 在我的控制器测试中返回特定结果。我的实体 POCO 没有接口,所以我不相信我可以模拟它们(如果这是错误的,请纠正我)。
我的想法是我可以为测试创建一个完整的 Couse 对象,该对象被配置为 userHasAccess() 将返回我想要的,但该方法依赖于 Course 的某些相关实体被“水合”,因此可能成为一件苦差事接线。
我是测试新手,所以不确定如何继续。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 unit-testing mocking moq