如何解决Jest测试失败,API端点出现404错误
我的api / index.js文件
import express from 'express'
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.get('/test',(req,res) => res.json(true))
export default {
path: '/api/v1',handler: app,}
- 这是我的api.spec.js文件,其中包含返回404的测试
- 如果我测试路线,则返回200
我的test / backend / api.spec.js文件
import { resolve } from 'path'
import { Nuxt,Builder } from 'nuxt'
import supertest from 'supertest'
// We keep the nuxt and server instance
// So we can close them at the end of the test
let nuxt = null
// Init Nuxt.js and create a server listening on localhost:4000
beforeAll(async () => {
const config = {
dev: process.env.NODE_ENV !== 'production',rootDir: resolve(__dirname,'../','../'),mode: 'universal',}
nuxt = new Nuxt(config)
await new Builder(nuxt).build()
await nuxt.server.listen(3000,'localhost')
},30000)
// Close server and ask nuxt to stop listening to file changes
afterall(() => {
nuxt.close()
})
describe('GET /api/v1/test',() => {
test('returns status code 200',(done) => {
supertest(nuxt.server.app).get('/api/v1/test').expect(200,done)
})
})
module.exports = {
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/$1','^~/(.*)$': '<rootDir>/$1','^vue$': 'vue/dist/vue.common.js',},modulefileExtensions: ['js','vue','json'],transform: {
'^.+\\.js$': 'babel-jest','.*\\.(vue)$': 'vue-jest',collectCoverage: true,collectCoverageFrom: [
'<rootDir>/components/**/*.vue','<rootDir>/pages/**/*.vue',],}
有人可以建议为什么测试失败
解决方法
就我而言,这是因为 jest 配置。
我的 jest.config.js
testEnvironment: 'jsdom'
api.test(spec).file 需要 node
环境。
我没有修改它。相反,我修改了 api.test.js 文件。
我刚刚在文件头部添加了下面的注释代码。 解决了)我的 api.test.js
/**
* @jest-environment node
*/
链接:https://jestjs.io/docs/configuration#testenvironment-string
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。