Моя база данных не вставляется сразу - PullRequest
0 голосов
/ 02 ноября 2009

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

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

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

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

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

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

Ответы [ 3 ]

3 голосов
/ 02 ноября 2009

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

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

1 голос
/ 02 ноября 2009

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

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

0 голосов
/ 02 ноября 2009

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

...