#node.js #express #jestjs #supertest
Вопрос:
Я пытаюсь протестировать Nodejs и экспресс-API с помощью JEST и Супертеста каждый раз, когда я запускаю тест npm, Jest завершается ошибкой, из-за которой вы пытаетесь импортировать файл после того, как среда Jest была разрушена, я ожидаю, что тест будет запущен, и отправляю запросы API, чтобы проверить, все ли API работают должным образом.
Вот мой server.js структура файла
const express = require("express");
const { readdirSync } = require("fs");
const cors = require("cors");
const morgan = require("morgan");
const dotenv = require("dotenv");
const connectDB = require("./config/DB");
const { erroHandler } = require("./middlewares/errorHandler");
//Load Config
dotenv.config({ path: "./config/config.env" });
//db connecnt
connectDB();
// Jest testing
const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(morgan("dev"));
app.use(cors());
readdirSync("./routes").map((r) => app.use("/api", require("./routes/" r)));
app.use(erroHandler);
module.exports = app;
Я пытаюсь запустить app.listen() в другом файле, который я называю index.js
const app = require("./server");
const PORT = process.env.PORT || 8000;
app.listen(PORT, () => {
console.log(`Server Listening ${PORT}`);
});
В моем тестовом файле сначала я пытаюсь подключиться к базе данных, а затем начать тестирование API.
const app = require("../server");
const supertest = require("supertest");
beforeEach(() => {
const connectDB = async () => {
try {
const conn = await mongoose.connect(process.env.MONGO_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
useCreateIndex: true,
});
console.log(`MongoDB connected`);
} catch (error) {
console.log("Mongoose Erro", error);
process.exit(1);
}
};
});
it("Testing to see if Jest works", () => {});
В моем файле backage.json тест npm должен запускать JEST
"scripts": {
"test": "jest",
},
Вот полная проблема, если вы получите лучшие предложения, также приветствуется.