私は、ボタンなどのオプションのリストを提示し、ダイアログを持っています。MS Bot Framework:ボタンのテストを書くには?
bot.dialog('menu', [
(session) => {
builder.Prompts.choice(
session,
'Your choices',
['A', 'B', 'C', 'Exit'],
{
listStyle: builder.ListStyle.button
});
},
(session, results) => {
let input = _.get(results, 'response.entity', null) || _.get(session, 'message.text', null);
switch (input) {
default:
session.endDialog("Please chose from available options.");
break;
case 'A':
session.send("You chose A");
break;
case 'B':
session.beginDialog("You chose B");
break;
case 'C':
session.beginDialog("You chose C");
break;
case 'Exit':
session.endDialog("Thanks for using menu!");
break;
}
}]
).triggerAction({
matches: /^(menu)$/i
})
}
私はどちらかのボタンを押すか、テキスト入力による選択を入力したときにこれが動作します。
私は自動テストを通じて対話をテストする場合しかし、それはテキスト入力に満足していないです。私がいない場合connector.processMessage()
てボタンをテストするにはどうすればよい
Oops something went wrong and we need to start over.
:ステップ2で
describe('menuDialog', function (done) {
this.timeout(50000);
// Test case for menu
it('should present a list of options', function (done) {
var step = 0;
var connector = new builder.ConsoleConnector();
var bot = universalBot(connector);
// Register a dialog to test
menuDialog(bot, builder);
bot.on('send', function (message) {
switch (++step) {
case 1:
console.log(`Step : ${step}`);
assert(message.text == 'Your Choices');
connector.processMessage('A');
done()
break;
case 2:
console.log("STEP : ", step)
assert(message.text == 'You Chose A');
done()
break;
}
});
connector.processMessage('menu');
});
});
テストが失敗したとmessage.text
がある:ここでは
おかげ
、 'アサート(message.text ==ない 'あなたはAを選んだ);'閉鎖を必要としますか '''?すなわち '資産(message.text == 'あなたはAを選んだ');' は 'Choices'と' Chose'は小文字ことになっていますか? –
うん、それは質問のタイプミスだった。 – moaglee