2012-05-18 3 views
0

У меня проблема с написанием тестов для моего действия, которое вызывается jquery через ajax. Я не знаю, как поймать данные, которые отправляются обратно в представление, действием, так что я могу утверждать, если это правильно. мой скрипт $ .ajax (...) вставляет результат, эхо-отредактированный контроллером, в элемент textarea, но в моем тестовом скрипте результат равен нулю. сообщение об ошибке:phpunit тестирование с ajax и zend framework

Failed asserting that null matches expected '... 

вот что мой тестовый код до сих пор:

$this->getRequest()->setRawBody('some json containing input params im testing'); 
$this->getRequest()->setMethod('GET'); 
$this->getRequest->setHeader('HTTP_X_REQUESTED_WITH','XMLHttpRequest'); 

$this->dispatch('my url'); 
$result = json_decode($this->getResponse()->getBody(),true); 

$expectedResult = 'some string'; 
$this->assertEquals($expectedResult, $result['targeted element']); 
+0

И что находится внутри переменной $ result? Также рассмотрите использование Zend_Json :: decode() –

+0

, если im не ошибается, $ result должен содержать значения всех полей, заданных контроллером. в этом случае это будет textarea, которая должна содержать строку, сгенерированную контроллером. есть некоторые другие элементы текста и выбора, но я не забочусь о них в этом конкретном тесте. – Ajant

+0

Что ДОЛЖНО быть неактуальным. Вопрос в том, что там есть :) –

ответ

1

Рекомендация я пишу ниже, как я могу проверить и оказалось гораздо более полезным и менее подвержен ошибкам:

  1. Отсутствие тестирования «контроллера».
  2. Вводить модели и объекты ценности в ваши услуги.
  3. Внесите услуги в свои контроллеры.
  4. Тест модели, значение объекты и услуги.
  5. Используйте JavaScript testing framework для проверки вашего JS. Там есть множество хороших опций, которые позволят вам высмеивать ваши призывы Ajax.
+0

. Я все еще новичок в тестировании модулей, поэтому я мог бы использовать немного более подробную информацию :) – Ajant

+0

Это действительно меньше связано с модульным тестированием и более для разработки программного обеспечения. Вероятно, вам следует изучить следующие темы (google): инъекция зависимостей, уровень обслуживания, объекты значений и mvvm. –

+0

thanx, я сделаю это – Ajant

Смежные вопросы