В настоящее время я занимаюсь разработкой приложения, которое подключается к нескольким механизмам баз данных (2 прямо сейчас, но в будущем это будет расти), но выполняет аналогичные функции для каждой базы данных. Я хотел бы разработать набор модульных тестов, которые мне нужно написать только один раз, но которые можно запустить на другом движке базы данных. Это приложение будет чрезвычайно сложным, и я предсказываю, что буду писать для него сотни, если не тысячи тестов.
Например, у меня есть метод, который извлекает все базы данных, доступные на сервере баз данных, и у меня есть два класса, которые имеют один и тот же интерфейс, который определяет метод GetDatabases (). Я хотел бы разработать один метод, который создает экземпляр класса, который реализует IDatabaseEngine, и вызвать метод GetDatabases () для него.
Затем я хочу вызвать этот метод один раз с моим классом MySQLDatabaseEngine и еще раз с моим классом SqlServerDatabaseEngine и проверить вывод.
В настоящее время я использую MSTest, потому что это то, с чем я больше всего знаком, но я не против переключения моего тестового движка, если он окажется неподходящим для этой задачи. Поскольку я только начал этим утром, я написал только три теста для этого, поэтому переключение не будет проблемой вообще.
Может даже не потребоваться сделать что-то другое с конфигурацией MSTest, но разработать некоторый тип тестового жгута внутри MSTest, чтобы дважды запустить метод с различными параметрами. Тем не менее, я хотел бы избежать любой ситуации, когда я должен
Я подумал о генерации кода, но мне бы очень хотелось этого избежать.