Тестирование одной тестовой функции с использованием другой, после тестирования этой?

У меня есть несколько тестовых классов и функций, которые я пишу на PHP, и у меня возник вопрос о стандартах, когда дело доходит до их кодирования.

У меня есть функция, которая создает внутренний объект хранения, сохраняет его в базе данных, извлекает его и затем утверждает, что значения в БД идентичны тем, которые были введены.

У меня также есть другая функция, которая модифицирует вышеупомянутый бэк-объект, но для этого он должен существовать, конечно. Было бы целесообразно, чтобы вторая функция вызывала первую (которая также возвращает данные, созданные после проверки ее правильности), чтобы я мог автоматизировать тест модификации без жесткого кодирования всего? Если нет, есть ли альтернативы этому подходу, кроме жестких значений?

0

Решение

В PHPUnit вы можете сделать тест зависимым от другого, используя аннотацию @depends. Вы также можете передать значения из первого теста в зависимый.
Второй тест не будет выполнен, если первый не пройден. И вы можете сделать третий тест-депозитант вторым или более чем один тест зависимым от другого (например, чтобы протестировать удаление, вам не нужно обновление для работы, только вставка).

 public function testCreateRegister()
{
$db = new Database();
$register_id = $db->createRegister('hello');

// ...
// check that the register was inserted correctly
// ...

return $register_id;
}

/**
* @depends testCreateRegister
*/
public function testUpdateRegister($register_id)
{
$db = new Database();
$this->assertTrue($db->updateRegister('hi');
}

Как объяснено в документах:

https://phpunit.de/manual/current/en/writing-tests-for-phpunit.html#writing-tests-for-phpunit.test-dependencies

1

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

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

По вопросам рекламы [email protected]