Я хочу протестировать свой CategoriesController и для этого мне нужно смоделировать метод AppModel. Я придерживаюсь Торты документы но я думаю, что мой случай немного отличается, так как модель Category не имеет отношения к AppModel, но наследуется от него.
app / Model / AppModel.php включает в себя:
<?php
App::uses('Model', 'Model');
class AppModel extends Model
{
public function storeId()
{
return Configure::read('storeId');
}
}
app / Test / Case / Controller / CategoriesControllerTest.php включает в себя:
<?php
App::uses('Controller', 'Controller');
App::uses('AppModel', 'Model');
class CategoriesControllerTest extends ControllerTestCase
{
public $fixtures = [...]
public function testView() {
$Categories = $this->generate('Categories', [
'models' => [
'AppModel' => [
'storeId'
],
]
]);
$Categories->AppModel
->method('storeId')
->will($this->returnValue(17));
$result = $this->testAction('/categories/view/1700007',
['return' => 'vars']
);
}
}
Это приводит к ошибке
Ошибка: вызов метода-члена () для null в …
Фон:
Мне нужно смоделировать метод storeId, потому что во время вызова view () в CategoriesController запрос обрабатывается методом в AppModel, который использует функцию storeId (), чтобы определить, какое хранилище активно.
Задача ещё не решена.
Других решений пока нет …