Jasmine `expect` 在 superagent `end` 中永远不会错

Jasmine `expect` never wrong in superagent `end`

我的代码没有做它应该做的事。超级测试 end() 回调函数中的所有 Jasmine expect() 通过,即使它们不应该通过。

const app = require('../server')
const request = require('supertest')

describe('Client', function() {
  const agent = request.agent(app)

  it('connects to the server', function() {
    agent.post('/users/register/foobar').end(function(err, res) {
      done()
      expect(true).toBe(false) // Doesn't fail
    }
  })
})

摘自package.json

"devDependencies": {
  "jasmine": "^2.4.1",
  "supertest": "^2.0.0"
}

npm list给出的实际版本是jasmine@2.4.1supertest@2.0.0

我的猜测是 end() 从未调用它的函数,但我昨天才开始使用所有这些功能,但我不确定该怎么做才能解决这个问题。

你看到我的错误了吗?


编辑

按照建议,我换行将 done() 放在末尾,但仍然没有变化。

我认为你使用函数 "done" 是错误的。 尝试:

it('connects to the server', function(done) {
agent.post('/users/register/foobar').end(function(err, res) {
  expect(true).toBe(false); // Doesn't fail
  done();
}  })

有关更多详细信息,请查看 jasmine 文档:Jasmine documentation: Asynchronous Support