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);
}