Как проверить, что метод расширения ILogger.Log был вызван с использованием Moq?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как проверить, что метод расширения ILogger.Log был вызван с использованием Moq?

Сообщение Anonymous »

Я создал проект xUnit для проверки этого примера кода

Код: Выделить всё

public class ClassToTest
{
private readonly ILogger _logger;

public ClassToTest(ILogger logger)
{
_logger = logger;
}

public void Foo() => _logger.LogError(string.Empty);
}
Я установил Moq, чтобы создать макет для регистратора

Код: Выделить всё

public class ClassToTestTests
{
private readonly ClassToTest _classToTest;
private readonly Mock _loggerMock;

public ClassToTestTests()
{
_loggerMock = new Mock();
_classToTest = new ClassToTest(_loggerMock.Object);
}

[Fact]
public void TestFoo()
{
_classToTest.Foo();

_loggerMock.Verify(logger => logger.LogError(It.IsAny()), Times.Once);
}
}
При запуске тестов я получаю это сообщение об ошибке

System.NotSupportedException: неподдерживаемое выражение: logger =>
logger.LogError(It.IsAny(), new[] { })
System.NotSupportedException Неподдерживаемое выражение: logger =>
logger.LogError(It.IsAny(), new[] { }) Методы расширения
(здесь: LoggerExtensions.LogError) не могут использоваться в выражениях настройки/
проверки.
После некоторых исследований я узнал, что все методы журналирования являются всего лишь методами расширения. Moq не может настраивать методы расширения.
Я бы не хотел устанавливать дополнительные сторонние пакеты для решения этой проблемы. Есть ли какие-нибудь решения, позволяющие пройти тест?

Подробнее здесь: https://stackoverflow.com/questions/663 ... -using-moq
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»