【问题标题】:Codeception Acceptance Test: How to test AJAX request?Codeception 验收测试:如何测试 AJAX 请求?
【发布时间】:2016-11-03 10:55:28
【问题描述】:

好吧,我在一个 ajax 页面上使用 codeception 进行测试,在该页面中我单击按钮,在执行 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 请求?

【问题讨论】:

  • 使用 WebDriver 模块。

标签: ajax codeception


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

    你也可以这样用:

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

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

    它更灵活一点,而不是像$I->wait(X); 这样的事情,因为它们通常比在几秒钟内等待它们要快得多。因此,例如,如果您有很多元素需要“等待”,比如 15-20,那么您的测试将花费 15-20 秒“等待”,而实际操作总共可能需要 1-2 秒才能完成。在许多测试中,这会显着增加构建时间,这……不好:)

    【讨论】:

      猜你喜欢
      • 2014-02-01
      • 2013-06-10
      • 1970-01-01
      • 2014-08-17
      • 2017-03-25
      • 2017-09-23
      • 1970-01-01
      • 2018-10-21
      • 1970-01-01
      相关资源
      最近更新 更多