如何使用Moq模拟ObjectResult.FirstOrDefault()

时间:2012-07-13 12:15:19

标签: c# asp.net unit-testing asp.net-mvc-2 moq

我正在做ASP.Net MVC2项目并在其上开发一些单元测试用例。在我的一个控制器中,

String AllowedActions = "";
AllowedActions = entities.sp_IsAuthorized(GetLoggedUserId(), 1, item.SubCategoryId, "CreateMeeting_HTML").FirstOrDefault();

我无法模拟这个sp_IsAuthorized()方法,

    public ObjectResult<global::System.String> sp_IsAuthorized(.....){

}

我试图以这种方式嘲笑它,

var entity = new Mock<TestMVCProductEntities>();
entity.Setup(x => x.sp_IsAuthorized(...)).Return(???);

但我不知道如何返回

ObjectResult

这种类型的对象。帮助我。

1 个答案:

答案 0 :(得分:1)

您无法创建ObjectResult的新实例,也无法模拟它,因为它被标记为已密封。我建议你将数据上下文的使用包装到工作单元或类似模式中,使其在单元测试中可测试。