Стандартным способом будет использование «интерфейса», который вы вводите, используя инверсию зависимости Инжекция метода управления.
Из коробки есть несколько доступных IoC в зависимости от платформы, которую вы программируете (ASP, UWP ..), что они обычно делают в регистре запуска в интерфейсе или экземпляре, который выполняет «что-то», а затем в приложении. делает ли это что-либо, используя «абстракцию» этого кода, контракта. Это обычно абстрактный класс или интерфейс. Есть ли у вас требование во время выполнения, чтобы изменить, иначе есть оба варианта, запасной метод?
Поскольку вы проводите "модульное" тестирование, вы можете провести оба теста с использованием Mocking framework. MOQ - один из них, который хорошо документирован.
если вы проводите интеграционное тестирование, можно / можно написать 2 теста по одному для каждой реализации. Наличие 2-х тестов облегчает понимание того, что тестируется, и насколько стабильно этот тестируемый код.
Надеюсь, что помог