[英]koa/supertest - server.close is not a function
我看過以前的帖子,問題是您需要導出實例才能在服務器上調用close()
。 我已經嘗試過了,但是我仍然收到該錯誤
import * as Koa from "koa"
import * as logger from "koa-logger"
import * as json from "koa-json"
import * as bodyParser from "koa-bodyparser"
import * as cors from "koa-cors"
import errorHandler from "./middlewares/errorhandler.middleware"
import router from "./routes"
const PORT = process.env.PORT || 3000;
const ENV = process.env.NODE_ENV || 'development';
const app = new Koa()
app
.use(logger())
.use(bodyParser())
.use(errorHandler)
.use(router.routes())
.use(router.allowedMethods())
.use(json())
.use(cors())
export const server = app.listen(PORT, (): void => console.log(`🌍 Server listening on port ${PORT} - ${ENV} environment`))
我也嘗試過不同的導出方式
const appServer = app.listen(...)
export default appServer
const request = require('supertest');
const server = require('../index');
beforeAll(async () => {
// do something before anything else runs
console.log('Jest starting!');
});
// close the server after each test
afterAll(() => {
server.close();
console.log('server closed!');
});
describe('basic route tests', () => {
test('get home route GET /', async () => {
const response = await request(server).get('/');
expect(response.status).toEqual(200);
expect(response.text).toContain('Hello World!');
});
});
另外,如果我將const server = require("../index.ts")
語句更改為導入,那么我會收到錯誤消息: Property 'close' does not exist on type 'typeof import("/Users/path/to/file/")
所以這也可能是問題的一部分。
在測試文件中更改導入
import {server} from "../index"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.