我有一个TableObject,它在afterSave-Event中发送一封电子邮件通知管理员一个更改。在从cakephp-3切换到cakephp-4后,测试失败,并显示以下错误消息:
Cake\Routing\Exception\MissingRouteException: A route matching ... could not be found.
异常发生在电子邮件模板中的一行,我在其中构建了如下链接:
$this->Url->build([
'prefix' => 'Partner',
'controller' => 'orders',
'action' => 'view',
$order->id,
]);
我认为路由不是在Tableobject测试的上下文中设置的,因此反向路由不起作用。(我只在运行测试时收到错误,在应用程序中发送电子邮件时不会收到错误)。
是否有方法可以加载测试中的所有路由?
1条答案
按热度按时间os8fio9y1#
自4.x以来,路线不再自动加载。您需要添加
到setUp()中或在测试运行之前立即主动加载它们。