2009-11-01 3 views
0

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

Моя проблема заключается в том, что у меня есть тест, который: (., Используя функцию в моей основной программе)

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

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

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

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

+0

Можно ли увидеть какой-то код, чтобы выяснить, происходит ли это в одной или нескольких транзакциях? –

+0

Я действительно добавил коммиты, и он все еще не работал. Спасибо за эту идею. –

ответ

3

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

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

+0

Они фактически разделены операторы SQL ... Я не думаю, что они являются одной и той же транзакцией, хотя они находятся внутри одной и той же функции PHP. –

1

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

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

0

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