我試圖寫在控制器的我的方法之一(MVC4)測試。我使用Moq。在測試方法中,我爲我的存儲庫創建了一個模擬器,如下所示:嘲諷User.Identity.Name在MVC4
Mock<ISurveyRepository> mock = new Mock<ISurveyRepository>();
並繼續模擬存儲庫調用。那些第一個是:
int userId = repository.GetUserId(User.Identity.Name);
所以我將它添加到我的測試方法:
mock.Setup(y => y.GetUserId("testName")).Returns(1);
可惜的是這行代碼給我:
System.NullReferenceException: Object reference not set to an instance of an object.
如果我刪除上面的行從我的控制器,並使用靜態值(int userId = 1)測試完成罰款。
有誰能告訴我爲什麼?