Можно ли добавить информацию в сообщение об ошибке в супертесте

Я использую супертест с мокко для тестирования экспресс-приложения nodejs. Все в порядке, хотелось бы немного больше описательных сообщений об ошибках. Это не значит, что сообщения в настоящее время плохие, это не так. Я просто хотел бы немного больше информации.

Например:

it('should successfully post my data and return a valid JSON', function(done) {
  .post(url)
  .set('Accept', 'application/json')
  .expect('Content-Type', /json/)
  .send(data)
  .expect(201, resultBody)
  .end(function(err, res) {
    if (err) return done(err);
    done();
  });
});

Если произойдет ошибка, так что resultBody не соответствует фактическому результату, будет напечатано красивое сообщение + expected - actual. Но я также хотел бы видеть другую информацию (возможно, аутентификацию или заголовок).

Мое текущее решение состоит в том, чтобы сделать следующее:

  .end(function(err, res) {
    if (err) {
      console.log(res.headers);
      console.log(res.statusCode);
      console.log(res.body);
      return done(err);
    }
    done();
  });

Но сообщения console.log отображаются вместе с сообщениями «it», перед сообщениями о прохождении/ожидании/сбое, а не с фактической ошибкой.

Можно ли без особых усилий добавить дополнительную информацию к сообщению об ошибке?


person Machtyn    schedule 15.03.2016    source источник


Ответы (1)


Вы можете исправить это, используя языковые цепочки Chai в expect и should, добавив Стили утверждений:

var foo = false;
expect(foo, 'foo must be true').to.be.true;
//AssertionError: foo must be true: expected false to be true
person emilioriosvz    schedule 16.03.2016