你如何打破Codeception验收测试中的持久登录?

时间:2016-08-24 19:38:03

标签: codeception

我最近以使用Codeception创建验收测试的形式开始了新的工作。因为这对我来说是一次学习经历,所以我一直在向Stack Overflow倾倒很多问题。感谢您所有的帮助!但这是我最新的困境。首先,我正在进行cept测试。首先,它登录到一个网站,运行一堆测试,然后注销:

class MainViewController: UIViewController, CustomViewDelegate
{
    @IBOutlet weak var nextButton: UIButton!
    @IBOutlet weak var customView: CustomView!

    @IBAction func nextButtonPressed(sender: UIButton) {
        self.nextButton.enabled = false
    }

    override func awakeFromNib() {
        super.awakeFromNib()
        self.customView.delegate = self
    }

    func customViewAnimationDidEnd(customView: CustomView) {
        self.nextButton.enabled = true
    }
}

protocol CustomViewDelegate : class
{
    func customViewAnimationDidEnd(customView: CustomView)
}

class CustomView: UIView
{
    weak var delegate: CustomViewDelegate? = nil

    func animationEnded() {
        self.delegate?.customViewAnimationDidEnd(self)
    }
}

拍摄的屏幕截图就好像它从未退出一样。我已尝试同时单击“注销”按钮,并使用ID(如上所示)选择“注销”按钮。这里的问题是,我有多个测试运行,当它没有注销时,它使我的下一个测试失败。有没有办法强制退出用户进行cest测试? 几年前我在文章中看到过像这样的问题,但看起来已经修好了。我尝试了这些文章的所有建议。有什么想法吗?

提供注销的相关链接:

$I->am('user');
$I->amOnPage('/');
$I->wait('2');
$I->amOnPage('?realm=ab-cd');
$I->amGoingTo('Login to website');
$I->fillField('username', 'REMOVED');
$I->fillField('password', 'REMOVED');
$I->click('Sign In');
$I->expect('Signing In');
// Should be on dashboard
$I->wait('5');
$I->see('Dashboard');
$I->see('Messages');
$I->see('Assignments');
$I->see('Reports');
$I->see('Help');
$I->click('Sign Out');
$I->expect('Signed Out');
$I->wait('5');
$I->makeScreenshot('Screenshot');
$I->seeCurrentUrlEquals('/');

更新:添加行$ I-> seeCurrentUrlEquals(' /');         发生错误:

<button id="log-out" class="red-btn">Sign Out</button>

1 个答案:

答案 0 :(得分:0)

为什么要退出/退出? 不应该注销自动带你去那里吗?

您的测试未检查是否已成功注销 Expect方法只是一个评论 使用seeseeCurrentUrlEquals来验证退出是否成功。