Моя база данных не вставляется сразу

Я пытаюсь применить Test Driven Development для создания веб-страницы, и у меня возникают проблемы с использованием моей базы данных. Я занимаюсь разработкой с использованием Cake 1.1, PHP5 и SimpleTest для модульного тестирования.

Моя проблема в том, что у меня есть тест, который:

  1. Вставляет строку, используя прямой оператор SQL
  2. Проверяет, была ли вставлена ​​эта строка (с помощью функции в моей основной программе.)
  3. Удаляет строку, которая была вставлена.

Оба шага 1 и 3 работают нормально, но шаг 2 не выполняется.

Важно понимать, что если я запускаю тест, не удаляя строку (я закомментировал это), а затем снова запускаю тест, но сначала исключаю шаг 1 (снова просто комментируя эту строку), и тест проходит без проблем.

Я также попытался запустить операторы SQL напрямую (один за другим в редакторе) в PHPMyAdmin, и они отлично работают.

3 ответа

Все ли шаги выполняются в одной транзакции?

Если нет, шаг 2 не сможет увидеть результат шага 1, пока шаг 1 не будет зафиксирован.

Похоже, ваша вставка происходит внутри транзакции, которая еще не была зафиксирована при попытке выполнить тестирование.

Можете ли вы дать пример кода?

Вы уверены, что совершаете транзакцию на шаге 1?

Другие вопросы по тегам