Изменение наборов данных для каждого теста PHPUnit

Я немного новичок в тестировании PHPUnit, и мне нужно охватить несколько сценариев метода. Метод берет строки таблицы и принимает решения на ее основе, поэтому, если у меня 0 строк, соответствующих моему запросу, он выполнит одно действие, иначе он выполнит другое.

Я выполнил настройку DBUnit, и все работает, но весь класс использует один и тот же метод getDataSet, поэтому он запускает тот же MySQLXMLDump.

Например:

testScenarioA -> Пустая таблица.

testScenarioB -> Таблица содержит данные.

Мне необходимо каждый тестовая функция на моем классе нагрузки Foo XML. Как я могу это сделать?

0

Решение

Таким образом, если у вас есть набор данных в вашем классе модульного теста, вы можете получить набор данных, возвращающий пустые результаты и некоторые данные

public static function dataForTest() {

return [
'empty' => [getEmptyDataset()]
'results' => [getResults()]
];
}

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

/**
* @dataProvider dataForTest
*/
public function testSyncUser($dataTypes) {
foreach ($dataTypes as $dataType) {
// Run tests
}
}

В качестве альтернативы вы можете создать вспомогательный класс для использования вместе с юнит-тестами для получения данных для тестов на лету. PHPUnit генерирует все наборы данных до создания экземпляра класса Test Unit, поэтому иногда это может быть полезным подходом.

0

Другие решения

Других решений пока нет …