2016-05-30 78 views
2

我正在使用Mocha和Chai(BDD模式)测试我的Bot。测试Microsoft Bot框架异步回复

我想从事件发射器收听,以检查我得到的回复,并根据我发送的文本判断它是否有意义。

我的测试通常遵循这个彭定康:

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上的所有回调),因此测试将失败。

如果我只运行特定的测试。他们通过。

这是测试此方法的最佳方式吗?我该如何解决这个问题?

回答

-1

如果有人绊倒了这一点。确保你在“完成”呼叫之前声明某事...

我有一个测试,没有断言任何东西,显然搞砸了其他测试。取消测试后,一切都顺利进行。

+0

摩卡并不关心你是否在调用'done'之前断言某些东西。 – Louis