我想用Behat来测试我的angular.js应用程序。但我遇到的问题是,当你去路线并想要点击链接Behat不知道何时呈现模板,所以有时它会在内容不可用时点击。有使用Behat测试angular.js应用程序经验的人吗?
或者有人知道如果当前路线的模板完成渲染,你可以检查javascript吗?以及如何检查angular.js是否在页面加载时引导应用程序?
我知道angular.js有ngScenario,但我想使用Behat,因为:
大安
答案 0 :(得分:0)
mink api有一个方法wait
,它允许你暂停PHP上下文的执行,直到你的javascript应用程序完成处理'某事'为止。文档中有一个简单的示例:http://mink.behat.org/#basic-browser-interaction
$session->wait(5000,
"$('.suggestions-results').children().length > 0"
);
在提供的示例中,PHP上下文将暂停最多5秒,直到填充了建议结果列表。您需要确定等效的javascript表达式,以确定您的路线何时完成渲染。
过去我们使用jQuery表达式遇到了一些问题,并且已经恢复为getElementById
等本机浏览器方法。
您还需要使用能够执行javascript的mink驱动程序。我们在命令行上运行时使用ZombieDriver
。有一些替代方案可能更适合您。