代码接受:如何验证更改 Url

Codeception Acception: How to validate a changed Url

我正在尝试验证 post 登录操作。但是问题发生在登录后,当用户被重定向到索引页面时。仅对经过身份验证的用户显示欢迎消息。有人可以帮我吗。我正在使用 Yii 2 框架!

use \AcceptanceTester;

class LoginCest
{
    public function login(AcceptanceTester $I)
    {
        $I->am('Login Page');
        $I->wantTo('Login Exists?');
        $I->amOnPage('/index.php?r=site/login');
        $I->see('Title');
        $I->see('User');
        $I->see('Password');
    }

    /**
    * @after login
    */
    public function validLogin(AcceptanceTester $I)
    {
        $I->amOnPage('/index.php?r=site/login');
        $I->fillField('LoginForm[username]', 'username');
        $I->fillField('LoginForm[password]', 'password');
        $I->click('Login');
        $I->amOnPage('/index.php');
        $I->see('Welcome {UserName}!', 'h1');
    }
}

Scenario Steps:
6. I see "Welcome!","h1" <<< FAIL
5. I am on page "/index.php"
4. I click "Login"
3. I fill field "LoginForm[password]","username"
2. I fill field "LoginForm[username]","password"
1. I am on page "/index.php?r=site/login"

FAILURES! Tests: 2, Assertions: 4, Failures: 1.

我认为你不需要这个“$I->amOnPage('/index.php');”因为这不会检查当前 url(为此你应该使用“$I->seeInCurrentUrl(...)”),但会引导你到那个 url。所以你实际上在这里做的是刷新你的索引页面并丢失欢迎闪现消息。 我相信您只需要删除此命令,因为在单击“登录”按钮后您已经被重定向到主页。