【发布时间】:2012-11-21 05:21:43
【问题描述】:
我为 edit_get 操作编写了一个单元测试 我的控制器动作是
public class GroupController : Controller
{
private readonly IGroupService groupService;
public GroupController(IGroupService groupService)
{
this.groupService = groupService;
}
public ActionResult EditGroup(int id)
{
var group = groupService.GetGroup(id);
CreateGroupFormModel editGroup = Mapper.Map<Group, CreateGroupFormModel>(group);
if (group == null)
{
return HttpNotFound();
}
return View("_EditGroup", editGroup);
}
控制器动作工作正常。 但是当我编写单元测试时它失败了 我的测试是
[Test]
public void Edit_Get_ReturnsView()
{
//Arrange
CreateGroupFormModel group = new CreateGroupFormModel()
{
GroupId = 2,
GroupName = "Test",
Description = "test" };
GroupController controller = new GroupController();
var fake = groupService.GetGroup(2);
groupRepository.Setup(x => x.GetById(2)).Returns(fake);
Mapper.CreateMap<CreateGroupFormModel, Group>().ForAllMembers(opt => opt.Ignore());
Mapper.AssertConfigurationIsValid();
ViewResult actual = controller.EditGroup(2) as ViewResult;
Assert.IsNotNull(actual, "View Result is null");
}
谁能帮帮我。测试失败为
Expected Not Null
actual Null
【问题讨论】:
-
如何存根 groupService?
-
您可能还想检查 Mapper.Map
(group); 中的映射配置是否正确如果 groupService 返回一个无法映射的组,您可能会得到 null “editGroup”,因此测试失败。
标签: asp.net-mvc unit-testing nunit moq