我现在正在使用ASP.NET和Microsoft Bot Framework开发我的第一个机器人。
在使用机器人模拟器手动测试后,我正在寻找创建自动化测试的最佳方法。
考虑到以下两个问题:
- 哪种工具是自动化测试的最佳选择?
- 如何测试可以返回不同答案的对话框?
我现在正在使用ASP.NET和Microsoft Bot Framework开发我的第一个机器人。
在使用机器人模拟器手动测试后,我正在寻找创建自动化测试的最佳方法。
考虑到以下两个问题:
一种替代方案是使用DirectLine进行功能测试。需要注意的是,机器人需要托管在服务器上,但它非常强大。查看AzureBot测试项目以了解其工作原理。
另一个选择是BotFramework团队为部分单元测试所做的。
如果您正在使用Dialogs,则可以查看EchoBot单元测试,因为它们易于理解。
如果您正在使用Chain,则可以查看他们如何使用AssertScriptAsync方法。
如果您想要模拟Luis服务,请参见此处。
对于在Node.js中自动化测试机器人,使用ConsoleConnector与GitHub上BotBuilder中的测试相同的方式运作良好,例如查看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');
});
...etc...