承诺中的 Jasmine 节点断言未显示
Jasmine-node assertions within promises not shown
除了断言之外,下面的代码都可以正常运行。当测试为 运行 时,Jasmine 报告 0 个断言。我怎样才能使我的主张不超出承诺并得到认可?
it("should open save NTP server modal", function (done) {
var addModal = driver.findElement(By.className('modal-dialog'));
driver.wait(until.stalenessOf(addModal), 5000).then(function () {
return driver.wait(until.elementIsEnabled(driver.findElement(By.id('saveButton'))), 5000).then(function (element){
return element.click();
});
});
driver.findElement(By.className("modal-body")).then(function (element) {
return expect(element.isDisplayed()).toBeTruthy();
});
done();
});
我知道在这种特定情况下(我最好的示例测试)我可以只捕获元素然后在承诺之外执行期望:
var element = driver.findElement(By.className("modal-body"));
expect(element.isDisplayed()).toBeTruthy();
不幸的是,在其他情况下,我无法确定在承诺之外执行异常的方法。
您必须将 "done" 方法放在最终回调中。
driver.findElement(By.className("modal-body")).then(function (element) {
expect(element.isDisplayed()).toBeTruthy();
done();
});
您还可以查看 Chai promises 库,它用于处理异步期望。
除了断言之外,下面的代码都可以正常运行。当测试为 运行 时,Jasmine 报告 0 个断言。我怎样才能使我的主张不超出承诺并得到认可?
it("should open save NTP server modal", function (done) {
var addModal = driver.findElement(By.className('modal-dialog'));
driver.wait(until.stalenessOf(addModal), 5000).then(function () {
return driver.wait(until.elementIsEnabled(driver.findElement(By.id('saveButton'))), 5000).then(function (element){
return element.click();
});
});
driver.findElement(By.className("modal-body")).then(function (element) {
return expect(element.isDisplayed()).toBeTruthy();
});
done();
});
我知道在这种特定情况下(我最好的示例测试)我可以只捕获元素然后在承诺之外执行期望:
var element = driver.findElement(By.className("modal-body"));
expect(element.isDisplayed()).toBeTruthy();
不幸的是,在其他情况下,我无法确定在承诺之外执行异常的方法。
您必须将 "done" 方法放在最终回调中。
driver.findElement(By.className("modal-body")).then(function (element) {
expect(element.isDisplayed()).toBeTruthy();
done();
});
您还可以查看 Chai promises 库,它用于处理异步期望。