Я запускаю работу с PHPUnit с Kohana. Мое приложение имеет много контроллеров, который просто берет данные из некоторой формы, проверяет и вставляет/обновляет/удаляет into/-/from базу данных. Как я должен записать тестовые сценарии для этого.
Я знаю, что, если я хочу протестировать функцию, я пишу, что поставщик данных функционирует и просто сравнивает возвращенное значение с ожидаемым. Но мои входные данные (данные из форм) передаются в $_POST
переменная. Как я должен протестировать это? И после этого, я должен проверить, находятся ли вставленные данные действительно в базе данных? Дайте мои некоторые инструкции для того типа тестов или ссылок на некоторые примеры/учебные руководства.Спасибо.
Во-первых, если вы тестируете весь путь от получения POSTed данных до проверки значений в БД, то это уже не юнит-тестирование: вы не тестируете один компонент в отрыве от других, а тестируете интеграцию этих компонентов вместе.
Это усложняет тестирование :
Обратите внимание, что я не говорил, что такие тесты "интеграции" не полезны, btw ;-)
Тем не менее, подделка массива $_POST
довольно проста: он не доступен только для чтения, и вы можете хранить в нем все, что захотите.
Итак, в начале вашего тестового случая, ничто не мешает вам вводить в него необходимые данные.
.Что сказал Паскаль. Также обратите внимание, что существуют инструменты специально для тестирования взаимодействия на уровне http / браузера. Вы можете использовать веб-тесты SimpleTest (использует эмулируемый браузер или браузер с поддержкой сценариев). Если вы предпочитаете PhpUnit, я думаю, вы можете довольно легко использовать браузер SimpleTest из PhpUnit. В противном случае есть более тяжелая Selenium IDE, для которой PhpUnit имеет интеграцию.