Я создал тест для контроллера, используя команду Cake bake
.Тестирование не работает CakePHP2.0
Теперь я хочу, чтобы проверить функцию «индекс» контроллер и для него я делаю это:
public function testIndex() {
echo "printed";
$result = $this->testAction("/comments/1");
echo "not printed";
}
1 является парами, идентификатор поста, где комментарий есть. Во всяком случае, контроллер работает отлично, нет проблем с ним.
Как вы можете видеть, тест вызывается после вызова метода testAction. (он не печатает второе эхо)
Я видел, что если действие, вызываемое контроллером, имеет какой-либо вызов его модели, вызов TestAction не будет работать. Но, если действие для тестирования не имеет никакого вызова какой-либо модели, то оно отлично работает.
Что здесь происходит? Кстати, обе базы данных, по умолчанию и test имеют в себе данные, поэтому это не проблема с базой данных.
Спасибо.
UPDATE: здесь есть остальная часть testController генерируется торт испечь команды:
<?php
/* Comments Test cases generated on: 2012-04-12 11:49:17 : 1334224157*/
App::uses('CommentsController', 'Controller');
/**
* TestCommentsController *
*/
class TestCommentsController extends CommentsController {
/**
* Auto render
*
* @var boolean
*/
public $autoRender = false;
/**
* Redirect action
*
* @param mixed $url
* @param mixed $status
* @param boolean $exit
* @return void
*/
public function redirect($url, $status = null, $exit = true) {
$this->redirectUrl = $url;
}
}
/**
* CommentsController Test Case
*
*/
class CommentsControllerTestCase extends CakeTestCase {
/**
* Fixtures
*
* @var array
*/
public $fixtures = array('app.comment');
/**
* setUp method
*
* @return void
*/
public function setUp() {
parent::setUp();
$this->Comments = new TestCommentsController();
$this->Comments->constructClasses();
}
/**
* tearDown method
*
* @return void
*/
public function tearDown() {
unset($this->Comments);
parent::tearDown();
}
где ваш метод testAction()? код? – thecodeparadox
Было бы неплохо увидеть остальную часть тестового примера (т. Е. Родительский класс, mocks, импорт и т. Д.). – jeremyharris
Я понятия не имею, его метод, определенный в CakePHP для работы с тестами. Он должен работать: http://book.cakephp.org/2.0/en/development/testing.html#testing-controllers – Alvaro