当 app 是 Promise 时启动 mocha chai 测试
Posted
技术标签:
【中文标题】当 app 是 Promise 时启动 mocha chai 测试【英文标题】:Start mocha chai test when app is a Promise 【发布时间】: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
怎么了?
【问题讨论】:
【参考方案1】:我相信您的问题是您使用的是 ES6 导出,但没有以 ES6 方式导入。
您导入的“应用程序”应该是:
import appPromise from '../server/app';
此外,您在“app.js”中的承诺似乎没有解决任何问题,如果这不是遗漏,您需要在 .then() 的承诺中解决一些问题工作。这是一个工作示例:
const appPromise = new Promise((resolve, reject) =>
resolve('appPromise resolved');
);
【讨论】:
以上是关于当 app 是 Promise 时启动 mocha chai 测试的主要内容,如果未能解决你的问题,请参考以下文章