PHPUnit DBUnit для интеграционного тестирования класса, который запрашивает хранимую процедуру MySQL - PullRequest
1 голос
/ 20 февраля 2012

Я создал дамп YAML для своей базы данных, в котором есть тестовые данные. Я хочу иметь возможность загружать эти данные в пустую тестовую базу данных в начале каждого теста, используя методы getDataSet () и getConnection ().

База данных имеет несколько представлений, которые экспортируются в виде таблиц в YAML. Это не слишком большая проблема. Проблема состоит в том, что один из тестируемых классов запрашивает хранимую процедуру MySQL, которая явно не выгружается в фикстуру YAML.

В идеале я хотел бы указать пустую тестовую базу данных, а также обрезать и заполнять базу данных в начале каждого теста, используя файл YAML.

Это кажется невозможным.

Есть ли альтернативный способ, возможно, использовать дамп SQL для создания фиксатора?

1 Ответ

1 голос
/ 23 февраля 2012

На самом деле есть только два способа эффективно протестировать код, который использует хранимые процедуры и триггеры.

Меньшее предпочтение: Создание и использование тестовой базы данных.

The Preferred: Поместите все ваши запросы, которые зависят от sprocs и триггеров, в автономные функции. Затем смоделируйте эти функции в своих модульных тестах.

...