Table 对象测试中的 MissingRouteException
MissingRouteException in test of Table Object
我有一个 TableObject,它在 afterSave-Event 中发送电子邮件以通知管理员更改。从 cakephp-3 切换到 cakephp-4 后,测试失败并显示以下错误消息:
Cake\Routing\Exception\MissingRouteException: A route matching ... could not be found.
异常发生在我构建 link 的电子邮件模板中的一行:
$this->Url->build([
'prefix' => 'Partner',
'controller' => 'orders',
'action' => 'view',
$order->id,
]);
我认为路由不是在表对象测试的上下文中设置的,因此反向路由不起作用。 (我只在 运行 测试时出现错误,而不是在应用程序中发送电子邮件时出现错误)。
有没有办法在测试中加载所有路由?
自 4.x 以来,路线不再自动加载。
您需要添加
$this->loadRoutes();
进入您的 setUp() 或在测试之前 运行 现在主动加载它们。
我有一个 TableObject,它在 afterSave-Event 中发送电子邮件以通知管理员更改。从 cakephp-3 切换到 cakephp-4 后,测试失败并显示以下错误消息:
Cake\Routing\Exception\MissingRouteException: A route matching ... could not be found.
异常发生在我构建 link 的电子邮件模板中的一行:
$this->Url->build([
'prefix' => 'Partner',
'controller' => 'orders',
'action' => 'view',
$order->id,
]);
我认为路由不是在表对象测试的上下文中设置的,因此反向路由不起作用。 (我只在 运行 测试时出现错误,而不是在应用程序中发送电子邮件时出现错误)。
有没有办法在测试中加载所有路由?
自 4.x 以来,路线不再自动加载。 您需要添加
$this->loadRoutes();
进入您的 setUp() 或在测试之前 运行 现在主动加载它们。