我開發使用CookComputing XML-RPC.net應用單元測試/嘲諷XML-RPC.net電話
我的問題是如何單元調用外部RPC方法的測試方法。
如果我們把網站上的例子:
//This is the XML rpc Proxy interface
[XmlRpcUrl("http://www.cookcomputing.com/xmlrpcsamples/RPC2.ashx")]
public interface IStateName : IXmlRpcProxy
{
[XmlRpcMethod("examples.getStateName")]
string GetStateName(int stateNumber);
}
public class MyStateNameService
{
public string GetStateName(int stateNumber)
{
IStateName proxy = XmlRpcProxyGen.Create<IStateName>();
return proxy.GetStateName(stateNumber);
}
}
我們怎樣纔能有效地測試IStateName的結果,而無需實際擊中 http://www.cookcomputing.com/xmlrpcsamples/RPC2.ashx
我認爲一個良好的開端將是對MyStateNameService
回吐構造一個IStateName,並在IStateName上傳遞一個虛假(或模擬?)實例...
我很想測試它的實際內容 - 例如僞裝響應SE從端點,並返回,不知怎的,不僅驗證GetStateName
調用服務...
編輯
我並不想測試服務爲這樣的內容,而且什麼我的類與它做。
因此,例如,說的迴應是:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>My State Name</string></value>
</param>
</params>
</methodResponse>
我會想「假」該響應一些如何測試MyStateNameService.GetStateName
實際返回的「我的國家名稱」
爲什麼你要測試的內容?當然,一旦它被命中'IStateName'代理它不再是你的應用程序的關注。不要測試外部代碼,這取決於編寫庫的人! –
對不起......我將編輯問題以使其更清晰。請參閱編輯問題 – Alex
我仍然不確定這一點。糾正我,如果我錯了,但你不直接處理XML,你調用代理上的一個方法,它會創建一個請求,並將它發送到爲RPC提供服務的任何地方。響應返回到代理,然後解析輸出並提供給您?在這種情況下,你無法控制XML解析,圖書館的代理類可以完成它,那麼爲什麼要測試它呢? –