在Cake 3中,我正在测试一种行为。现在我想测试通过模型保存时是否正确使用了该行为。为此,我需要模拟一些行为方法。
我已经搜索了很多方法来模拟它们并将它们添加到模型中。在Cake 2.x中,我们可以通过ClassRegistry
注册自定义行为。我已经在Cake 3中搜索过如何做到这一点但却找不到它。
任何人都知道怎么做?
由于
答案 0 :(得分:1)
您可以使用ObjectRegistry::set()
手动将mocks手动添加到表行为注册表中,这允许添加任意对象。
$table = TableRegistry::get('FooBars');
$behaviorOptions = [];
$behaviorMock = $this->getMock(
'\App\Model\Behavior\BazBehavior',
['some', 'mocked', 'methods'],
[$table, $behaviorOptions]
);
$table->behaviors()->set('Baz', $behaviorMock);
现在,您的模拟行为已在Baz
上注册到表中。