摩卡测试不会从函数调用中调用

时间:2016-02-29 20:41:56

标签: javascript mocha

我一遍又一遍地测试了这个,试图找出解决方案但不能。我试过谷歌搜索一切,无法找到任何产生任何结果。我只使用mocha模块。问题是,当我运行我的测试时,它根本不会在我的函数中调用.then语句。我用console.log()测试了测试脚本之外的方法;并且它们按照需要执行。

以下是两条评论的测试。

it('Should pass if the currently set frame name is top_page', function () {

    chromeDriver.get('http://www.site_with_frame.com');

    frameHandler.switchToFrame('top_page');

    frameHandler.getCurrentFrameName(function (name) {
        console.log(name); //This is never called.
        done(); //Should this be here?
    });
});

这是我用回调

调用的函数
this.getCurrentFrameName = function(callback) {

    //This is called once in test
    console.log('getCurrentFrameName function '); 

    driver.executeScript('return self.name').then(function(name) 
    {
        //This is never called in test
        console.log('getCurrentFrameName .then '); 
        return callback(name);
    });
};

1 个答案:

答案 0 :(得分:0)

我正在回答我自己的问题。我必须将done作为参数包含在内,然后指定超时和完成函数调用。

interface IInjectorService {
    ...
    get<T>(name: string, caller?: string): T;
    ...