【发布时间】:2014-04-22 12:53:04
【问题描述】:
我正在为我的控制器编写一些单元测试,但在控制器中模拟模型时遇到了一些问题。
一些代码:
class ExampleController extends AppController {
public function some()
{
$this->loadModel('ModelA');
$this->loadModel('ModelB');
//this I want to mock
$modelAVal = $this->ModelA->someFunctionFromModel($param);
$modelBVal = $this->ModelB->ModelCDependentFromModelB->someFunction($param);
}
}
在我的控制器测试用例中,我尝试使用以下代码:
public function testSome() {
$mock = $this->generate('Example', [
'models' => ['ModelA', 'ModelB', 'ModelC']
]);
$mock->ModelA->expects($this->once())->method('someFunctionFromModel')->will($this->returnValue(true));
$mock->ModelB->ModelC->expects($this->once())->method('someFunction')->will($this->returnValue(true));
}
错误:在非对象上调用成员函数 expects() - 对于我尝试使用的每个模型...
【问题讨论】: