賞金將在 4 天后到期。此問題的答案有資格獲得 50聲望賞金。 AnonymousAlias希望引起對這個問題的更多關注。
我已經檢查了其他答案,例如Mocha API Testing: getting 'TypeError: app.address is not a function'似乎該錯誤的主要問題不是匯出服務器,但我認為我正在這樣做。
這是我的測驗檔案 spec.js
var request = require('supertest');
describe('loading express', function () {
var server;
beforeEach(function () {
delete require.cache[require.resolve('./index')];
server = require('./index');
});
afterEach(function (done) {
server.close(done);
});
it('responds to /', function testSlash(done) {
request(server)
.get('/')
.expect(200, done);
});
這是我的 index.js 檔案
import bodyParser from "body-parser";
import cookieParser from "cookie-parser";
import cors from "cors";
import express from "express";
import _ from "lodash";
import serveStatic from "serve-static";
const port = 8000;
export default (app) => {
app.use(express.json({ limit: "50mb" }));
app.use(
express.urlencoded({
extended: true
})
);
app.use(bodyParser.json({ limit: "50mb" }));
app.use(cors());
app.use(serveStatic("dist/", { index: ["index.html"] }));
app.use(cookieParser());
if (_.isNil(process.env.APP_ENV)) {
process.env.APP_ENV = "LOCAL";
}
// ... A load of variables and functions in here
// simple function to test
app.get('/', function (req, res) {
res.status(200).send('ok');
});
var server = app.listen(port, function () {
var port = server.address().port;
console.log('Example app listening at port %s', port);
});
module.exports = server;
};
uj5u.com熱心網友回復:
index.js正在匯出一個app作為引數的函式。所以 import ofindex.js是一個必須用 呼叫的函式app。
規范.js
server = require('./index');
// replace with
server = require('./index')(app);
假設這仍然是一個函式,并且如上所述用appin呼叫它spec.js,那么您可以server通過替換module.exports = server;為return server;.
測驗.js
module.exports = server;
// replace with
return server;
另外,這里還有 ES Modules ( import/export) 和 CommonJS Modules ( module.exports/require) 的混合,這可能會導致各種奇怪的行為。如果您可以僅對其中一個進行標準化,那將有很長的路要走。
但是,如果您繼續使用require('./index')importindex.js是一個 ES 模塊,您可能需要嘗試require('./index').default獲取該default匯出。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/491709.html
標籤:javascript 节点.js 表示 单元测试 超测
上一篇:Spock-建構式中的通配符
