промежуточное ПО для экспресс-тестирования супертестов

нашел следующую подсказку о том, как тестировать промежуточное ПО в экспрессе:
https://github.com/visionmedia/express/blob/master/test/req.xhr.js
Мне было интересно, почему мои тесты всегда проходят. Пока я не заметил, что когда я скопировал тест из экспресса, они вели себя одинаково. Я пытался их напортачить, но они продолжают проходить: https://github.com/visionmedia/express/blob/master/test/req.xhr.js

Что мне здесь не хватает?

it('should return true when X-Requested-With is xmlhttprequest', function(done){
  var app = express();

  app.use(function(req, res){
    req.xhr.should.be.false; //set to false, to fail the test but it still passes
    res.end();
  });

  request(app)
  .get('/')
  .set('X-Requested-With', 'xmlhttprequest')
  .end(function(res){
    done();
  })
})

person user3224014    schedule 02.04.2014    source источник


Ответы (1)


Вы ничего не пропустили, это экспресс-тест req.xhr это никогда не подведет.

Если вы запустите свой пример, вы увидите трассировку стека ошибки, но тест пройден, потому что:

  1. он не поймал ошибку во время теста.
  2. при вызове функции done() информация об ошибке не передается.

Мои исправления находятся в PR #2053:

  1. используйте expect(), чтобы вернуть ошибку утверждения в .end().
  2. передать любую информацию об ошибке done().
person shawnzhu    schedule 15.04.2014