Xunit.net и Moq утверждают, что метод вызывается независимо от создаваемого исключения

В методе, который я тестирую, я хочу утверждать, что вызов был сделан до того, как сгенерировано исключение.

В настоящее время раздел теста Act/Assert выглядит следующим образом:

Assert.Throws<Exception>(() => sut.HandleMessage(messageToProcess));

mock.Verify(n => n.Method(It.IsAny<string>()), Times.Once);

но это нарушает правило утверждать только один раз, так как я утверждаю, что HandleMessage выдает исключение (которое имеет собственный тестовый пример) и затем проверяет mock.Method назывался.
Это означает, что тест не пройден, если не было сгенерировано исключение, что я не проверяю здесь.

Как бы я мог убедиться, что метод был вызван, даже если исключение не было сгенерировано, будет ли здесь принята опция try-catch-finally (как показано ниже)?

try
{
    sut.HandleMessage(messageToProcess);
}
catch{}
finally
{
    mock.Verify(n => n.Method(It.IsAny<string>()), Times.Once);
}

0 ответов

Другие вопросы по тегам