【发布时间】:2021-11-21 19:47:02
【问题描述】:
我已经阅读了很多类似问题的答案,但无法弄清楚我的代码有什么问题。
这是我的 server.js 文件
const Koa = require('koa')
const Router = require('koa-router')
const app = new Koa()
app.use(require('koa-bodyparser')())
const login = (ctx, next) => {
ctx.body = ctx.request.body
}
const router = new Router({ prefix: '/api' })
router.get('/test', (ctx, next) => {
ctx.body = { resp: 'GET REQUEST /test WORKING' }
})
router.post('/login', login)
app.use(router.routes())
module.exports = app
这是我的 index.js 文件
const server = require('./server')
server.listen(3000, () => {
console.log('App is running on http://localhost:3000')
})
这是我的摩卡测试文件
const axios = require('axios').default
const expect = require('chai').expect
const app = require('./server')
describe('7-module-3-task', () => {
describe('test', function () {
let server
before(done => {
server = app.listen(3000, done)
})
after(async () => {
server.close()
})
it('should return response from server', async () => {
const response = await axios.get('http://localhost:3000/api/test')
expect(response.data, 'should return object with key "resp').to.have.property('resp')
})
})
})
当我在 Postman 中提出请求时,一切正常。我已经尝试了多个选项,但我仍然得到 404 响应,因为我知道测试是在服务器开始运行之前执行的......?我怎样才能让它工作?
【问题讨论】: