【问题标题】:Start mocha chai test when app is a Promise当 app 是 Promise 时启动 mocha chai 测试
【发布时间】:2021-11-22 08:43:25
【问题描述】:

服务器异步启动的代码非常简化

// server/app.js
let appPromise = new Promise((resolve, reject) => {
   [..async stuff..]
   const app = express()
   const server = http.createServer(app)
   server.listen(config.port, config.ip, () => {...}
})    
export default appPromise;

我从哪里开始测试:

// test/index.js
require('@babel/core').transform('code', {});
require('@babel/register');
let tests = require('./tests.js');

module.exports = {tests};

实现测试的代码:

// test/test.js
const app = require('../server/app')
const chai = require('chai')
const chaiHttp = require('chai-http')
chai.use(chaiHttp);
chai.should();
app.then(() => {
    describe(..tests...)
})

我得到的错误:

.then() is not a function

怎么了?

【问题讨论】:

    标签: javascript node.js asynchronous mocha.js


    【解决方案1】:

    我相信您的问题是您使用的是 ES6 导出,但没有以 ES6 方式导入。

    您导入的“应用程序”应该是:

    import appPromise from '../server/app';
    

    此外,您在“app.js”中的承诺似乎没有解决任何问题,如果这不是遗漏,您需要在 .then() 的承诺中解决一些问题工作。这是一个工作示例:

    const appPromise = new Promise((resolve, reject) => {
        resolve('appPromise resolved');
    });
    

    【讨论】:

      猜你喜欢
      • 2015-12-01
      • 2019-02-04
      • 1970-01-01
      • 1970-01-01
      • 2019-09-15
      • 2014-12-21
      • 1970-01-01
      • 2016-06-11
      相关资源
      最近更新 更多