我正在尝试使用Intern来编写第一个功能测试,我无法解决以下问题:运行以下测试脚本时
define(["intern!object",
"intern/chai!assert"
], function(registerSuite, assert){
registerSuite({
name: "suite",
"test": function(){
var browser = this.remote;
console.log("HELLO !");
browser.get("http://www.google.com", function() {
console.log("PAGE LOADED !");
browser.waitForCondition("!!window.document.gbqf", 1000, function(err, value){
console.log("LET'S BEGIN... ");
browser.eval("window.document.gbqf", function(err, value){
console.log("BYE BYE !");
browser.quit();
});
});
});
}
});
});
在chrome中,使用selenium server standalone 2.32.0和chromedriver 26.0.1383.0 for windows,我的测试永远不会结束,控制台中显示的最后一条消息是“PAGE LOADED!”。
有没有人知道我打算如何编写这个测试,或者链接到一些正确的(现实生活)功能测试示例?
感谢您的帮助,
的Sebastien
答案 0 :(得分:0)
功能接口不使用回调参数,而是使用promises。您的代码应如下所示:
define([
"intern!object",
"intern/chai!assert"
], function (registerSuite, assert) {
registerSuite({
name: "suite",
"test": function () {
var browser = this.remote;
console.log("HELLO !");
return browser
.get("http://www.google.com")
.then(function () {
console.log("PAGE LOADED !");
})
.waitForCondition("!!window.document.gbqf", 1000)
.then(function () {
console.log("LET'S BEGIN... ");
})
.eval("window.document.gbqf")
.then(function (value) {
console.log("BYE BYE !");
});
});
}
});
});
特别注意:
this.remote
的最后一个保证链,以向实习生表明测试是异步的waitForCondition
未返回值quit
;一旦测试完成,这将由Intern处理