Я пытаюсь заменить эту реализацию Rhino Mocks:
private bool IsHandshakeCalled()
{
var args = httpExecutorBuilderStub.GetArgumentsForCallsMadeOn(st => st.ExecuteHttpWebRequestAndReturn(
Arg<HttpMethod>.Is.Anything, Arg<string>.Is.Anything, Arg<string>.Is.Anything));
if (args.Count > 0)
{
return args[0][0].Equals(HttpMethod.POST) &&
args[0][1].Equals("/api/v2/connection/command") &&
args[0][2].Equals(JsonConvert.SerializeObject(new HandshakeRequestDto(500)));
}
return false;
}
следующей реализацией Moq:
private bool IsHandshakeCalled()
{
HttpMethod? capturedHttp = null;
string? capturedString1 = null;
string? capturedString2 = null;
httpExecutorBuilderStub.Setup(st => st.ExecuteHttpWebRequestAndReturn(
It.IsAny<HttpMethod>(), It.IsAny<string>(), It.IsAny<string>()))
.Callback<HttpMethod, string, string>((h, s1, s2) => {
capturedHttp = h;
capturedString1 = s1;
capturedString2 = s2;
});
if (capturedHttp != null)
{
return capturedHttp.Equals(HttpMethod.POST) &&
capturedString1.Equals("/api/v2/connection/command") &&
capturedString2.Equals(JsonConvert.SerializeObject(new HandshakeRequestDto(500)));
}
return false;
}
Проблема в том, что моя реализация Moq не получает исходных аргументов.
Вероятно, у меня проблемы с методом Callback()
Moq.
- Что я делаю не так?
- Следует ли мне использовать какой-то другой метод Moq?