CakePHP SimpleTest - Тест контроллера против веб-теста - PullRequest
0 голосов
/ 09 июня 2011

Я хочу протестировать базовые операции CRUD в CakePHP (1.3) с помощью SimpleTest.
Например, я хочу добавить новую запись и убедиться, что получаю сообщение об ошибке, если проверка не пройдена, и новую запись, если сохранение проходит успешно.
Лучше ли писать эти тесты как (1) тесты контроллера для соответствующего действия (например, add ()) или как (2) веб-тесты, используя $ this-> post () или $ this-> setField ()?

1 Ответ

1 голос
/ 20 июня 2011

Это старый вопрос, но до сих пор нет ответа, поэтому я попробую ...

Я считаю, что первое, что вам нужно сделать, это лучше разделить ваши проблемы. Прямо сейчас то, что вы делаете, по крайней мере для меня, это кодовый запах ... означающий, что что-то не так!

Как я пришел к такому выводу?

Ну, вопрос, который вы задали, и как вы на него отвечаете. Вопрос, который вы задаете:

«Как проверить функциональность модели?»

Ваш ответ:

"Проверьте его с контроллера или view "

Итак, первое, что я хотел бы сделать, это настроить метод в соответствующей модели, чтобы делать то, что вы хотите. Напишите код, который вы считаете нужным. Сохраните запись и верните соответствующие значения, которые вы ищете, основываясь на любых условных выражениях, которые вы придумали.

После этого я бы настроил некоторые приборы, чтобы у вас были данные для проверки. Вы можете узнать больше о приборах CakePHP и о том, как их создавать, в руководстве по CakePHP, http://book.cakephp.org/view/1201/Preparing-test-data (В будущих проектах я сначала сделаю приспособления, но это всего лишь личное предпочтение)

Как только ваши приборы настроены, вы можете приступить к тестированию метода новой модели. Тестирование моделей, на мой взгляд, проще всего тестировать в CakePHP. Я не буду вдаваться в подробности здесь, только потому, что в руководстве по CakePHP, http://book.cakephp.org/view/1207/Testing-models, есть куча информации о том, как тестировать модели.

В этот момент у вас должно быть правильно протестированное модульное действие, и касается правильного разделения .

При этом, если вы чувствуете себя супер резвым и хотите, чтобы ваш код тестировался со всех сторон, то непременно настройте тест контроллера, чтобы убедиться, что действие выполняется правильно. Настройте веб-тест, чтобы убедиться, что весь пакет работает вместе.

Во-первых, разделите ваши проблемы.

...