【问题标题】:Mocha and Chai GET request test doesn't workMocha 和 Chai GET 请求测试不起作用
【发布时间】:2017-12-23 12:09:35
【问题描述】:

我正在尝试在主根“/”上测试 GET 请求。我的文件 root.js 中不存在该路由,因为 我希望测试失败,但它总是成功。 我不明白为什么。有 3 个文件:./test/test.js、./server/server.js 和 ./server/routes/index.js

/*File: ./test/test.js */
/* eslint-env mocha */
const chai = require('chai')
const chaiHttp = require('chai-http')

const { expect } = chai
const app = require('../server/server.js')

chai.use(chaiHttp)

describe('GET Home', () => {
  it('Should return Not found', () => {
    chai
      .request(app)
      .get('/', (err, res) => {
        const result = res.statusCode
        expect(result).to.equal(200)
      })
  })
})

/*File: ./server/server.js */
const express = require('express')
const bodyParser = require('body-parser')
const config = require('./config.js')
const mainRoutes = require('./routes')

const app = express()

app.set('view engine', 'jade')

app.use(bodyParser.urlencoded({ extended: false }))
app.use(mainRoutes)

app.listen(config.port, () => {
  console.log(`The application is running on localhost:${config.port}`)
})

module.exports = app

/*File: ./server/routes/index.js*/
const express = require('express')

const router = express.Router()

// router.get('/', (req, res) => {
//   res.render('home')
// })

module.exports = router

【问题讨论】:

  • 你能发布你的 server.js 或者你定义路由的地方吗?
  • 是的,我更新了我的帖子
  • routes/index.js 也可能很有趣。我认为您可能有两个问题:1)您在 routes/index.js 中设置了一个我们还没有看到的路由 2)您使用的是 Jade,也许它设置了一个默认页面我建议您在本地运行服务器并查看对路由的 GET 请求的结果。您可以通过浏览器或 Postman 执行此操作。

标签: node.js express mocha.js httprequest chai


【解决方案1】:

这是因为get运行异步,你需要调用done()断言expect(result).to.equal(200)进行检查,否则无论你的路由器是否存在,你的测试都会通过。如果您想了解更多信息,请查看此 page 并搜索 Caveat

describe('GET Home', () => {
    it('Should return Not found', (done) => {
        chai
            .request(app)
            .get('/')
            .end(function (err, res) {
                const result = res.statusCode
                expect(result).to.equal(200)
                done()
            })
    })
})

【讨论】:

    猜你喜欢
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 2013-04-11
    • 1970-01-01
    相关资源
    最近更新 更多