我有一个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的上下文中设置的,因此反向路由不起作用。(我只在运行测试时出现错误,而不是在应用程序中发送电子邮件时出现错误)。
是否有一种方法可以加载测试中的所有路由?
发布于 2020-12-04 21:17:40
从4.x开始,路由不再自动加载。您需要添加
$this->loadRoutes(); 加载到您的setUp()中,或者在测试运行之前主动加载它们。
https://stackoverflow.com/questions/65087451
复制相似问题