だから私は Moq を使用して、コントローラー アクションの単体テストを書き始めています。
私のコントローラーはすべて、コンストラクターで設定された userId プロパティを Membership.GetUser().ProviderUserKey の値にする基本 CustomController クラスから継承します。このようにして、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' へのアクセスが拒否されました。」
他の誰かがこの問題に遭遇したか、それを回避する方法について考えていますか?