0

認証にHTTP+SSLを使用するWCFサービスがあります。現在、実際のサービスクラスをインスタンス化して呼び出しを行う統合テスト(Visual Studio 2012ユニットテストプロジェクト)を作成しています。

この問題は、WCFサービスメソッドの次の最初の行で発生します。

var userName = ServiceSecurityContext.Current.PrimaryIdentity.Name;

ユニットテストプロジェクトがHTTP経由で呼び出しを行っていないためです。

認証が機能するようにコンテキストをモック/スタブする方法を誰かが推奨できますか?

ありがとう。

4

1 に答える 1

2

TelerikJustMockでこれを機能させることができました。私は城の道を歩き始めましたが、それほど運がありませんでした。とにかく、将来の子孫のために:

var username = "me";
var param1 = "oneoneone";
var param2 = @"stuffstuffstuff";
var conmock = Mock.Create<ServiceSecurityContext>( Constructor.Mocked );
var perinstance = new MyWcfService();
Mock.Arrange( () => ServiceSecurityContext.Current ).IgnoreInstance().Returns( conmock );
Mock.Arrange( () => conmock.PrimaryIdentity.Name ).Returns( username );
var something = perinstance.SubmitRequest( param1 , param2 );
Assert.AreEqual( something , somethingelse );
于 2012-12-05T19:35:58.637 に答える