场景:修改并保存对Campaign的不完整更改
Given I click on the Campaign section folder
And I press Save in the selected Campaign
Then I should see an error balloon informing the changes cannot be saved
Run Code Online (Sandbox Code Playgroud)
重点是最后一步中的'错误气球'是ajax调用,然后根据操作的成功带来绿色或红色气球.目前我所做的是在"我按下保存..."后,我会睡觉(3)让它有时间让这个气球出现.这似乎不是很聪明,因为你浪费时间,而且因为有时候处理这个电话会花费更多或更少的时间.
你们怎么做你的behat测试等待Ajax做的而不仅仅是让野兽睡觉?
非常感谢您的任何反馈!
小智 26
这是通过等待你的杰出ajax调用达到0. jQuery.active将为你检查.
在你的FeatureContext.php中,你可以做类似的事情.
public function iShouldSeeAnErrorBalloon($title)
{
$time = 5000; // time should be in milliseconds
$this->getSession()->wait($time, '(0 === jQuery.active)');
// asserts below
}
Run Code Online (Sandbox Code Playgroud)
并确保您使用运行javascript和ajax的Mink驱动程序(默认情况下不运行).