Существует принцип для полностью автоматизированных тестов : вы должны иметь возможность извлечь весь исходный код из репозитория исходного кода и просто запустить тесты.
Учитывая, что среда (машина) имеет правильную базу установки (то есть компилятор, инфраструктуру тестирования, ядро базы данных, если это необходимо, и т. Д.), Тесты отвечают за настройку своего Fixture перед выполнением тестовых случаев.
Это означает, что для баз данных тесты должны
- создать соответствующую базу данных
- запустить свои тесты
- снова удалить базу данных после последнего теста
Если по какой-то причине вы не можете этого сделать, единственное, что вы действительно можете сделать, - это иметь файл конфигурации в вашей системе управления версиями, который содержит машинно-специфичные записи для всех машин в вашем тестовом окружении; например для машины Tst1 строка подключения - это одно значение, а для Tst2 - другое.
Это может очень быстро стать уродливым, поэтому гораздо проще сделать тесты ответственными за настройку Fixture и Teardown, потому что это означает, что они могут просто использовать жестко запрограммированные значения или значения, сгенерированные на месте.
Это действительно не имеет никакого отношения к DI ...