javascript - Chai 测试返回 Uncaught TypeError: Cannot read property 'have' of undefined
问题描述
我正在尝试编写一个非常简单的 Chai 测试来检查服务器的状态。我创建了一个简单地返回 201 状态的端点。然后我创建了一个测试文件,检查从 HTTP 请求返回的状态是否为 201,但我得到了一个Uncaught TypeError: Cannot read property 'have' of undefined
错误。(在测试文件夹上运行 npm test 后)谁能帮我找出我的文件中的问题?谢谢!
端点/status.js
module.exports = function (req, res) {
res.status(201).send('You are doing a great job')
}
服务器.js
// Import dependancies
const express = require('express')
const cors = require('cors')
// Setup express server
const app = express()
// Setup port
app.set('port', (process.env.PORT || 3001))
// Parse application/json
app.use(express.json())
// Setup cors
app.use(cors())
// Import routes
const getStatus = require('./endpoints/status')
const getInfo = require('./endpoints/info')
// Setup routes
app.get('/api/status', getStatus)
app.get('/api/info', getInfo)
// Express only serves static assets in production
if (process.env.NODE_ENV === 'production') {
app.use(express.static('client/build'))
}
// Listen on port
app.listen(app.get('port'), () => {
console.log(`Find the server at: http://localhost:${app.get('port')}/`) // eslint-disable-line no-console
})
// Export so we can test
module.exports = app
测试/server.test.js
const chai = require('chai')
const chaiHttp = require('chai-http')
const server = require('../server')
chai.use(chaiHttp)
describe('status', () => {
describe('GET /status', () => {
it('it should return the correct status', (done) => {
chai.request(server)
.get('/api/status')
.end((err, res) => {
if (err !== null) {
console.log('Status error: ', err)
}
res.should.have.status(201)
done()
})
})
})
})
解决方案
推荐阅读
- django - Django HttpResponseRedirect 与重定向
- python - 将数字 pi 转换为字符串“pi”
- flask - socket.io 客户端无法连接到服务器
- reactjs - 在反应应用程序上获取请求失败 404 错误
- azure - 如何将 Azure Functions v3 迁移到 .net core 5.0
- android - 模糊库 - 如何模糊单个视图?
- excel - 如何使用 VBA 变量在 VLookup 中跨多个工作簿的查找值
- r - 如何使用 ggplot barplot 绘制表函数的结果(x 轴值问题)
- redundancy - 您能否在现有的 Apache Geode 区域上增加复制?
- sql-server - 在“)”附近预期条件的上下文中指定的非布尔类型的表达式