我在做一個ASP.Net MVC2項目並在其上開發一些單元測試用例。在我的控制器之一,如何使用Moq模擬ObjectResult.FirstOrDefault()使用Moq
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
這種類型的對象。幫我。
Mocq只能模擬'virtual'方法,所以如果'sp_IsAuthorized'不是虛擬的,它根本就不起作用。 – nemesv 2012-07-13 12:19:48
@nemesv Ya.It。但我的問題是我應該在這個聲明中返回什麼, entity.Setup(x => x.sp_IsAuthorized(...))。Return(???); 我已經把問號。 – Dilma 2012-07-13 12:22:52
我刪除了我的答案,因爲我意識到代碼可能會自動生成,因此您不會更改返回類型。我建議你閱讀[這篇文章](http://msdn.microsoft.com/en-us/ff714955.aspx)關於可測試性和實體框架 – 2012-07-13 13:07:20