Используйте ItExpr.IsNull, а не значение аргумента null, поскольку это предотвращает правильный поиск метода

Я пытаюсь написать модульный тест, где мне нужно создать защищенный метод. Я использую Moq для этой установки.

_innerHandler.Protected()
             .Setup<Task<HttpResponseMessage>>("SendAsync", It.IsAny<HttpRequestMessage>(), It.IsAny<CancellationToken>())
             .ReturnsAsync(responseMessage);

когда эта строка выполняется, она бросает следующее исключение:

1 ответов


при создании IProtectedMock, вы должны использовать Moq.Protected.ItExpr вместо Moq.It.

вот исправленная реализация того, что я пытался сделать в своем вопросе:

_innerHandler.Protected()
             .Setup<Task<HttpResponseMessage>>("SendAsync", ItExpr.IsAny<HttpRequestMessage>(), ItExpr.IsAny<CancellationToken>())
             .ReturnsAsync(responseMessage);