Чтобы проверить этот метод (и, в частности, блок if), предполагая, что вы вводите свои зависимости (например, _requestService), и что эти зависимости являются абстракциями, которые могут быть заменены mocks, тогда для проверки этого метода вам нужно подтвердить, что ваши различные методы зависимости получил ожидаемый объект запроса, например _dateCheckerService.CheckRequest (запрос).
Для этого вы можете написать свои собственные макеты или использовать библиотеку насмешек, такую как Moq или NSubstitute .
Проблема с тестированием этого метода заключается в том, что вам придется выполнить большую настройку (создать четыре макета, собрать коллекцию запросов ...), и конечный результат окажется очень хрупким. Например, представьте, что вы решили провести рефакторинг и вам больше не требуется одна из ваших зависимостей, результат будет таким же, но ваши тесты будут сорваны, потому что вы тестируете не только то, что делает метод, но и как он это делает, ваш тест будет зависеть на вашей реализации.
Модульное тестирование вашего кода - отличный план, но в этом случае я хотел бы рассмотреть вопрос о том, стоит ли сложность и хрупкость создаваемых вами тестов той выгоды, которую принесут модульные тесты, но только вы можете ответить на этот вопрос.
Если вы продолжите тестирование, я бы порекомендовал провести более одного теста для блока if, по одному для каждой зависимости, и каждый тест должен иметь только одно утверждение.
Для проверки блока If;
- Создайте два запроса: один IsDelete = true, другой IsDelete = false. Настройте свой тест так, чтобы _requestService.GetAll () возвращал оба этих запроса.
- Утверждение, что _dateCheckerService.CheckRequest () передается запрос IsDelete, но не IsDelete = false.
- Повторите второй шаг для _notificationService.Send () и _invoiceService.CreateInvoice ();
Каждая проверяемая зависимость должна проверяться в своем собственном тесте.