2016-05-30 6 views
2

Ich teste meinen Bot mit Mocha und Chai (BDD-Modus).Testen von Microsoft Bot Framework Async Antworten

Ich möchte vom Event-Emitter hören, um zu überprüfen, welche Antwort ich habe und bestätigen, wenn es Sinn macht basierend auf dem Text, den ich gesendet hatte.

folgen Meine Tests in der Regel diese patten:

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'}); 
    }); 
}); 

ich mehrere haben beschreibt und mehrere seiner auf meinen Tests. Gelegentlich wird eine Antwort auf den falschen Antwort-Rückruf ausgelöst (obwohl ich alle Rückrufe auf dem beforeEach zurückgesetzt habe), so dass die Tests fehlschlagen.

Wenn ich nur den spezifischen Test ausführen. Sie gehen vorbei.

Ist dies der beste Weg, dies zu testen? Wie kann ich das lösen?

Antwort

-1

Wenn jemand darüber stolpert. Stellen Sie sicher, dass Sie etwas vor Ihrem "Fertig" -Aufruf geltend machen ...

Ich hatte einen Test, der nichts behauptete und anscheinend vermasselte andere Tests. Nach dem Entfernen des Tests lief alles reibungslos ab.

+0

Mocha ist es egal, ob Sie etwas vor dem Aufrufen von 'done' bestätigen oder nicht. – Louis