Тестирование асинхронных ответов Microsoft Bot Framework

Я тестирую своего бота, используя Mocha и Chai (режим BDD).

Я хочу прослушать источник событий, чтобы проверить, какой ответ я получил, и подтвердить, имеет ли он смысл на основе отправленного мной текста.

Мои тесты обычно следуют этому шаблону:

beforeEach(function (done) {
    bot = require('myModule').textBot;
    bot.removeAllListeners('reply');
    done();
});

describe('', function(){
    it('', function (done) {
        bot.on('reply', function (message) {
            assert.include(message.text.toLowerCase(), '');
            done();
        });
        bot.processMessage({text: 'message_that_will_trigger'});
    });
});

У меня есть несколько описаний и несколько его на моих тестах. Иногда ответ будет инициирован неправильным ответным обратным вызовом (даже несмотря на то, что я сбросил все обратные вызовы для beforeEach), поэтому тесты не пройдут.

Если я запускаю только конкретный тест. Они проходят.

Это лучший способ проверить это? Как я могу это решить?


person Matheus208    schedule 30.05.2016    source источник


Ответы (1)


Если кто-то еще наткнется на это. Убедитесь, что вы утверждаете что-то до вашего "готового" вызова...

У меня был тест, который ничего не утверждал и, по-видимому, испортил другие тесты. После удаления теста все пошло гладко.

person Matheus208    schedule 30.05.2016
comment
Mocha совершенно не важно, утверждаете ли вы что-то перед вызовом done. - person Louis; 30.05.2016