MockBehavior.Strict внутри блока try-catch не приводит к сбою модульного теста, несмотря на неустановленный вызов метода - PullRequest
0 голосов
/ 31 августа 2018


Мне интересно, имеет ли смысл вызывать неустановленный метод компонента 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, если я не перебрасываю его?

...