HttpContext の User プロパティをモックしたい。Scott Hanselmans MVCHelper クラスと RhinoMocks を使用しています。
次のようなコードを含む単体テストがあります。
...
MockIdentity fakeId = new MockIdentity("TEST_USER", "Windows", true);
MockPrincipal fakeUser = new MockPrincipal(null, fakeId);
using (mocks.Record())
{
Expect.Call(fakeHttpContext.User).Return(fakeUser);
}
...
私の MockIdentity および MockPrincipal クラスは、それぞれ IIdentity および IPrincipal に準拠するモックです。
単体テストを実行すると、次のようなエラーが表示されます。
System.NotImplementedException : メソッドまたは操作が実装されていません。System.Web.HttpContextBase.get_User() で
これは、ユーザー プロパティの期待値を設定しようとしているときに発生しています。
httpContextBase には実装されていないゲッターとセッターがあることは理解していますが、Rhino はモック時にこれを処理すると思いました。
これは、HttpContextbase から派生させて、モック オブジェクトのプロパティをオーバーライドする必要があるということですか。奇妙に思えます。
他のユーザーにもこの問題があり、ここで報告されています: http://www.mail-archive.com/rhinomocks@googlegroups.com/msg00546.html