2016-12-27 22 views
6

私は今、Microsoft Bot Bot FrameworkとASP.NETで最初のボットに取り組んでいます。Microsoft Bot Frameworkの自動テスト

ボットエミュレータで手動でテストした後、ボットの自動テストを作成する最適な方法を探しています。

考えると二つの問題:

  1. このようなテストを自動化するための最良のツールは何ですか?
  2. 同じ入力に対して異なる回答を返すダイアログをテストする最良の方法は何ですか?

答えて

7

代わりに、DirectLineを使用して機能テストを行うこともできます。警告は、ボットをホストする必要があるが、それは強力です。これがどのように機能するかは、AzureBot tests projectを参照してください。

また、BotFrameworkチームがユニットテストのいくつかのためにやっていることをやっています。

ダイアログを使用している場合は、簡単に従うようにEchoBot unit testsをご覧ください。

Chainを使用している場合は、AssertScriptAsyncメソッドをどのように使用しているかを見てください。

あなたはルイス・サービスをモックアップする方法を探している場合は、thisを参照してください。

+0

実際にこのリンクhttps://github.com/Microsoft/BotBuilder/tree/master/CSharp/Tests/Microsoft.Bot。 Sample.Testsは、いくつかの実際の例が含まれているので、単体テストを示す方が良いです。 – OmG

3

Seleniumとお考えください。 Seleniumは、Webブラウザの自動化ソフトウェアで、プログラムでWebページのDOMに読み書きするテストを記述することができます。あなたができるセレンスクリプトを使用して:

は、Webクライアントを提供する任意のチャンネル上
  • ログイン(およびそれらのほとんどがそう:ウェブチャットを、電報、スカイプ、Facebookは、例えば)
  • は、あなたのボット
  • との会話を開始します
  • チャットにメッセージを投稿し、返信を待つなどの操作を実行します。
  • 返信が期待どおりかどうかをテストします。
1

Node.jsのボットの自動テストでは、GitHubのBotBuilderのテストと同じようにConsoleConnectorを使用します。 https://github.com/Microsoft/BotBuilder/blob/master/Node/core/tests/localization.jsを見てみましょう:

var assert = require('assert'); 
var builder = require('../'); 

describe('localization', function() { 
this.timeout(5000); 
it('should return localized prompt when found', function (done) { 
    var connector = new builder.ConsoleConnector();  
    var bot = new builder.UniversalBot(connector); 
    bot.dialog('/', function (session, args) { 
     session.send('id1'); 
    }); 
    bot.on('send', function (message) { 
     assert(message.text === 'index-en1'); 
     done(); 
    }); 
    connector.processMessage('test'); 
}); 

...等...

関連する問題