Mocha: Асинхронная документация

Созданный на 24 сент. 2013  ·  3Комментарии  ·  Источник: mochajs/mocha

Я застрял на пару часов с настройкой асинхронных тестов, и я думаю, что документацию нужно обновить. В документации можно найти следующий код:

describe('#find()', function(){
    it('respond with matching records', function(done){
      db.find({ type: 'User' }, function(err, res){
        if (err) return done(err);
        res.should.have.length(3);
        done();
      })
    })
  })

Утверждение здесь приведет к сбою Mocha, потому что AssertionError не будет перехвачен. Он должен быть заключен в оператор try-catch, было бы хорошо, если бы это было указано в официальной документации :)

Все 3 Комментарий

Только что протестировал пример с недавним mongodb, should и mocha. Работает нормально. Если вы настаиваете, откройте этот вопрос еще раз, но предоставьте подробную информацию о вашем конкретном случае.

Я вижу что-то подобное - тайм-аут мокко попадает, поскольку AssertionError, похоже, пойман mongo: https://github.com/mongodb/node-mongodb-native/blob/V1.3.19/lib/mongodb /connection/base.js#L384

Фреймы стека:
Base._callHandler (), base.js: 384
Server.connect.connectionPool.on.server._serverState (), server.js: 472
MongoReply.parseBody (), mongo_reply.js: 68.
Server.connect.connectionPool.on.server._serverState (), server.js: 430

Мне не удалось создать простой тестовый пример - все они работали нормально.

Однако я нашел обходной путь - оберните ваши утверждения в process.nextTick ().
Я перешел на

хм мокко должен ловить тех, у кого uncaughtException, и сопоставлять их с правильным тестовым примером

Была ли эта страница полезной?
0 / 5 - 0 рейтинги