我的代码没有做它应该做的事情。所有处于超级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.1
和supertest@2.0.0
。
我的猜测是end()
从不调用它的功能,但是我昨天刚刚开始使用它,我不知道如何解决这个问题。
你看到我的错误吗?
正如所建议的那样,我改变了行以将done()
放在最后,但仍然没有变化。
答案 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