シナリオ:特定のパラメーターがリクエストに設定されている、提供されたIRestclientを使用してクラスが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が単体テストシナリオで設定されている要求パラメーターのテスト/検証をサポートする方法/かどうかについての質問です。