所以我正在使用 Moq 并开始为我的控制器操作编写单元测试。
我的所有控制器都继承自 CustomController 基类,该类提供在构造函数中设置为 Membership.GetUser().ProviderUserKey 的值的 userId 属性。这样我就可以通过传递contactId将userId传递给我的服务层。
这似乎不适用于此单元测试:
var serviceMock = new Mock<IFormService>();
serviceMock.Setup(g => g.GetForm(2)).Returns(new FormViewModel() {ID = 2, Name = "Mock Form"});
var controller = new FormController(serviceMock.Object);
var result = controller.Index(2);
Assert.IsNotNull(result, "View Result is null");
它会在基本 CustomController 上引发异常,并尝试从 Membership.GetUser().ProviderUserKey 设置 userId。
“UnauthorizedAccessException:访问路径 'C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\App_Data' 被拒绝。”
有没有其他人遇到过这个问题或对解决它有任何想法?