0

我有一個WCF服務,它使用HTTP + SSL進行身份驗證。我正在編寫集成測試(Visual Studio 2012單元測試項目),用於實例化實際的服務類並進行調用。集成測試ServiceSecurityContext虛擬策略需要

的問題發生在WCF服務方法本第一行:

變種的userName = ServiceSecurityContext.Current.PrimaryIdentity.Name;

因爲單元測試項目沒有通過HTTP進行呼叫。

任何人都可以推薦一種方法來模擬/存根上下文,以便身份驗證將工作?

謝謝。

回答

2

我能夠與Telerik JustMock合作。我開始沿着城堡道路行駛,但沒有那麼幸運。 無論如何,爲了未來的後代:

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); 
+0

你使用了什麼框架/ dll? –