Как смоделировать функцию, у которой есть ввод, является исключением? - PullRequest
2 голосов
/ 14 января 2020

Я пишу модульный тест в .netcore C# для функции. В этой функции мне нужно настроить функцию для фиктивного объекта. Эта функция ввода является исключением. Я пытаюсь ниже решения, оно компилируется нормально, но не во время выполнения. Пожалуйста, помогите.

Требуется проверить функцию:

    public void MyFunction()
    {
        ...
        try
        {
            ...
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "...");
            ...
        }
    }

В модульном тесте я выполняю настройку, как показано ниже:

_loggerMock.Setup(l => l.LogError(It.IsAny<Exception>(), It.IsAny<string>(), null));

Ошибка при работе UT:

System.NotSupportedException: 'Неподдерживаемое выражение: l => l.LogError (It.IsAny (), It.IsAny (), new [] {}) Методы расширения (здесь: LoggerExtensions.LogError) могут не иметь использоваться в выражениях настройки / проверки. '

1 Ответ

1 голос
/ 14 января 2020

Я следовал руководству из комментария Простого Геда. И теперь это работает.

Вот код:

_loggerMock.Setup(x => x.Log(LogLevel.Error, It.IsAny<EventId>(), It.IsAny<object>(), It.IsAny<Exception>(), It.IsAny<Func<object, Exception, string>>()));
...