0

応答本文が空であるかどうかをアサートしようとしていますが、エラーが発生しました:

var api = supertest(TEST_URL);
...
api.get('..')
   .expect('Content-Type', /json/)
   .end(function (err, res) {
      if (err) {
        return done(err);
      }

      res.should.have.status(200);

      // Uncaught AssertionError: expected {} to have a property 'length'
      // res.body.should.empty;

      // Workaround should be used
      res.text.should.eql('{}');

どうしたの?この問題を解決するにはどうすればよいですか?

4

1 に答える 1

1

.emptyアサーションはshould.js、文字列、引数、配列、長さのプロパティのみをチェックします。Content-Typeしたがって、欠落している長さについてアサーションをスローする場合、ボディは json に解析されているようには見えません ( のように正しく返されるようにする必要がありますapplication/json)。

オブジェクトの場合、 yes.emptyは、列挙可能なプロパティが欠落していないかどうかをチェックします。

$ node
> var should = require('should')
undefined
> var res = { body: {} };
undefined
> res.body.should.be.empty
{ obj: {},
  params: { operator: 'to be empty' },
  negate: false }
> 
于 2014-09-08T07:56:15.757 に答える