Нет, вы бы использовали макет, когда писали класс, который использует и IRepository
. Для реализаций из IRepository
вам необходимо выполнить проверку на соответствующий источник данных. Для баз данных это немного болезненно - для файловой системы чуть меньше.
По возможности, если вы сможете выразить свою реализацию в виде потоков или считывателей, вы упростите свою жизнь: тесты для этих частей реализации могут идти против источников данных в памяти или потоков из ресурсов в тестовой сборке. , Конечно, вам, вероятно, понадобится несколько тестов, которые идут в реальную базу данных или файловую систему, но, надеюсь, меньше.
Назовите ли вы такие тесты "модульными" тестами или нет, зависит от того, как вы определяете модульные тесты; лично меня не особо волнуют имена, но я действительно забочусь о проведении тестов. В частности, для баз данных это может быть несколько болезненно (особенно, если вы хотите иметь возможность выполнять тесты параллельно), но, по моему опыту, они также могут быть невероятно полезными.