我正在尝试为我在控制器(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),则测试可以正常完成。
谁能告诉我为什么?