Codeception Acceptance Test:如何测试AJAX请求?

时间:2016-07-01 06:26:32

标签: ajax codeception

我正在使用codeception在ajax页面上进行测试,在其中单击按钮,在执行AJAX请求后会显示某种文本。

$I->amOnPage('/clickbutton.html');
$I->click('Get my ID');
$I->see('Your user id is 1', '.divbox');

如您所见,测试的工作方式应该是“您的用户ID为{$ id}'返回(在这种情况下id为1),并使用文本更新div框。但是,它根本不起作用,而是测试说div框是空白的。我做错了什么?如何使用codeception测试AJAX请求?

2 个答案:

答案 0 :(得分:1)

您也可以使用:

$I->click('#something');
$I->waitForText('Something that appears a bit later', 20, '#my_element');

20 =超时(以秒为单位),给它一些理智的价值。

它更灵活,而不是像$I->wait(X);这样的东西,因为它们通常比在几秒钟内等待它们快得多。所以,例如,如果你有许多元素,你需要等待"因为,让我们说15-20,然后你的测试将花费15-20秒"等待"而实际操作总共可能达到1-2秒。在许多测试中,这可能会显着增加构建时间,这不是很好:)

答案 1 :(得分:0)

在检查div时,您确定您的请求已经完成吗?发送请求后尝试添加一点等待:

$I->amOnPage('/clickbutton.html');
$I->click('Get my ID');

$I->wait(1); //add this

$I->see('Your user id is 1', '.divbox');