下面的using
會擊中一個我不想實際擊中的外部資源。我想測試someResult
以及使用它的代碼,但是每次運行我的單元測試時,此代碼仍會嘗試打擊真正的Web服務。我如何使用moq來僞造真正的Web服務調用,但是不能模擬使用中的其他代碼?Moq - 如何模擬Web服務調用?
public IMyInterface.SomeMethod()
{
// hits a web service
using (mySoapClient client = new mySoapClient())
{
var someResult = client.DoSomething();
...
...
}
}
[TestMethod()]
public void SomeMethodTest()
{
IMyInterface target = new MyInterface();
target.SomeMethod();
// Assert....
}
哦,你能告訴我Func <>的用途嗎?我對它並不熟悉 –
'Func'是一個內置類型,它擁有一個委託(一個指向方法的「指針」),它不接受任何參數並返回泛型類型的對象(在你的情況中,你想要肥皂客戶端)。閱讀通過C#傳遞的委託;它是語言和框架的一個非常強大的功能。 –
KeithS
在單元測試中,我嘲笑單元測試的響應對象。在響應對象中,我想通過嘲諷爲屬性中的一個賦值。我如何實現這個 – ravithejag