使用重定向测试操作在 yii2 中给出了意想不到的行为

Testing action with redirect gives uexpectable behavior in yii2

我尝试使用代码检测来测试我的应用程序,但是所有 LoginCept.php 都在这个动作上中断

class SiteController extends Controller {
    public function actionIndex() {
        $this->redirect('journal');
    }
}

正如我在 php-buildin-server 的日志中看到的那样,在应用内重定向后它到达实际入口点 index.php 而不是 index-test.php

[Thu Jun  9 20:54:00 2016] 127.0.0.1:40472 [302]: /index-test.php/login
[Thu Jun  9 20:54:00 2016] 127.0.0.1:40496 [302]: /index-test.php << in-app redirect
[Thu Jun  9 20:54:00 2016] 127.0.0.1:40506 [500]: /journal

因此,由于这种意外行为,测试失败了。如何强制应用程序的重定向在同一个入口点脚本中工作?

需要将 URI 包装到 Url::to() 以添加 yii2 使用的所有内容。所以函数调用应该是这样的

$this->redirect(Url::to('to/something'));