0
場景: 驗證我的課程使用提供的IRestclient發出RestRequest,其中在請求中設置了某些參數。使用Rhino Mocks聲明吊牀RestRequest參數
public class MyClass {
private readonly IRestClient _client;
public MyClass(IRestClient client) {
_client = client;
}
void DoIt() {
var req = new RestRequest { Method = WebMethod.Get, Path = "/DoIt" };
req.AddParameter("key1", "value1");
req.AddParameter("key2", "value2");
var resp = _client.Request(req);
}
}
[TestFixture]
public class MyClassTests {
[Test]
public void VerifyDoIt() {
var client = MockRepository.GenerateStrictMock<IRestClient>();
var resp = new RestResponse { StatusCode = HttpStatusCode.OK };
client.Expect(x => x.Request(null)).IgnoreArguments().WhenCalled(inv => {
var req = inv.Arguments[0] as RestRequest;
//NO WAY TO VALIDATE THAT PARAMETERS HAS BEEN SET!
inv.ReturnValue = resp;
});
}
}
是吊牀根本就沒有以這種方式檢驗的還是我失去了一些東西重要?
編輯:這不是一個關於如何使用Rhino.Mocks訪問/驗證方法參數的問題,而是Hammock如何/如果支持在單元測試場景中設置測試/驗證請求參數。
那麼你想檢查在DoIt()方法中創建的「req」變量的值嗎? – PatrickSteele
對不起,我現在意識到我的問題有點不清楚我想要什麼解決方案。這更像是一個Hammock問題,而不是一個Rhino.Mocks問題。例如。吊牀不支持這個,或者Hammock中有一些隱藏功能可以讓用戶訪問和驗證這些東西。 –