Мне интересно, имеет ли смысл вызывать неустановленный метод компонента Mock (поведение которого строгое) внутри блока try-catch без повторного выброса исключения?
public class RequestFilter
{
private readonly ISender _sender;
public RequestFilter(ISender sender) => _sender = sender;
public async Task Process()
{
try
{
await _sender.SendAsync();
}
catch(Exception e)
{
//Log exception
//Don't rethrow it
}
}
}
[TestClass]
public class RequestFilterTest
{
var sender = new Mock<ISender>(MockBehavior.Strict);
var requestFilter = new RequestFilter(sender.Object);
await requestFilter.Process();
}
Идея состоит в том, что в предоставленной реализации (я избегал бизнес-логики) модульный тест игнорирует тот факт, что метод SendAsync () объекта-отправителя вызывается и не устанавливается. Прав ли я, если предположить, что исключение, вызванное нарушением MockBehavior.Strict, перехватывается и «теряется» внутри блока catch, если я не перебрасываю его?