В чем разница между методом generate () и новым классом ControllerTestCase в CakePHP 2? - PullRequest
0 голосов
/ 22 ноября 2011

Что касается модульного тестирования в CakePHP, кажется, что есть два основных способа тестирования действий.

Первый - это издевательство над задействованным контроллером с использованием метода generate():

$Posts = $this->generate('Posts', array(
  'methods' => array(
    'isAuthorized'
  ),
  'models' => array(
    'Post' => array('save')
  ),
  'components' => array(
    'RequestHandler' => array('isPut'),
    'Email' => array('send'),
    'Session'
)
));

Но в CakePHP 2 был добавлен новый ControllerTestCase класс , чтобы явно облегчить эту конфигурацию:

class PostControllerTest extends ControllerTestCase {

    public $fixtures = array('app.post');

    function testIndex() {
        $result = $this->testAction('/post/index');
        debug($result);
    }
    ...
}

Я обнаружил несколько проблем при использовании компонентов черезКласс ControllerTestCase.Я хотел бы знать, в чем разница, если таковая имеется, между этими двумя подходами.

Спасибо!

1 Ответ

1 голос
/ 22 ноября 2011

Нет, это на самом деле то же самое, метод generate используется для настройки контроллера перед использованием testAction, таким образом, вы будете иметь контроль над тем, какие компоненты, модели или методы контроллера должны проверяться перед проверкой действия.,Метод generate доступен только в классе ControllerTestCase

...