我一遍又一遍地测试了这个,试图找出解决方案但不能。我试过谷歌搜索一切,无法找到任何产生任何结果。我只使用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);
});
};
答案 0 :(得分:0)
我正在回答我自己的问题。我必须将done作为参数包含在内,然后指定超时和完成函数调用。
interface IInjectorService {
...
get<T>(name: string, caller?: string): T;
...