如何让摩卡中的“it”等到“it”中的承诺得到解决?

Paw*_*yal 5 javascript selenium asynchronous mocha.js node.js

var promise = require('promise');
var {Builder, By, Key, until} = require('selenium-webdriver');
var test = require('selenium-webdriver/testing');
var chai = require('chai');
var getUrl = require('./wdio.conf.js');
var driver = new Builder().forBrowser('chrome').build();

test.describe('Proper Testing', function() {
    test.it('should prompt the server from user', function() {
        return new promise(function(resolve,reject){
            resolve(driver.get("https://www.google.co.in"));
            reject(err);
        })
    })
}) 
Run Code Online (Sandbox Code Playgroud)

对于上面给出的代码,运行 mochaproperty.js 会在 Chrome 浏览器中打开给定的 url,但测试失败并出现超时错误。我读过,如果测试返回承诺,则不需要调用 did() 。给定的代码有什么问题?

Kay*_*eri 1

done当你完成测试后,你必须打电话。

我不确定你想在这里实现什么,但是这个示例代码应该说明我的观点:

describe('Proper Testing', function() {

    it('should prompt the server from user', function(done) {
        return getUrl().then(function(url){
            driver.get(url)
            .then(function () {
              done();
            }).catch(function (err) {
              done(err);
            });
        })
    });

})
Run Code Online (Sandbox Code Playgroud)

参考: https: //mochajs.org/#asynchronous-code