茉莉花'期待'在superagent`end`中永远不会出错

时间:2016-08-30 15:38:45

标签: javascript node.js jasmine supertest superagent

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

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()放在最后,但仍然没有变化。

1 个答案:

答案 0 :(得分:2)

我认为使用“完成”功能是错误的。 尝试:

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