1

如果用 mocha 和 supertest 进行测试:

describe('GET /v1/news/5339a146d46d35ebe953030a --test', function(){
it('respond with json', function(done){
    request(app)
        .get('/v1/news/5339a146d46d35ebe953030a')
        .set('Accept', 'application/*')
        .set('DEV-ROLE', 'test')
        .expect('Content-Type', /json/)
        .send(json)
        .expect(200)
        .expect(function(res) {
            //THIS FUNCTION RESULT IN A TIMEOUT IF NO ERROR IS THROWN
            if(!('item' in res.body)) throw  new Error("missing item key");
        })
        .end(function(err, res){
            if (err) return done(err);
            done()

        });

    })
})

我想测试生成的主体,但我总是超时运行。如果发生错误,我可以抛出错误,那很好。但是,如果没有发生错误,如果我没有像文档中描述的那样返回,我会遇到超时:

传递自定义断言函数。它将被赋予要检查的响应对象。如果响应正常,它应该返回 falsy,最常见的是不返回任何内容。如果检查失败,则抛出错误或返回一个真实值,如将变成错误的字符串

即时文档示例:

  request(app)
    .get('/')
    .expect(hasPreviousAndNextKeys)
    .end(done);

  function hasPreviousAndNextKeys(res) {
    if (!('next' in res.body)) return "missing next key";
    if (!('prev' in res.body)) throw new Error("missing prev key");
  }

我使用版本 0.12.1

4

1 回答 1

-2

等待版本 0.13.0 解决了这个问题。现在它起作用了。

于 2014-05-28T20:16:17.880 回答