我现在正在使用带有ASP.NET的Microsoft Bot Framework的第一个机器人上工作。
使用bot模拟器手动测试后,我正在寻找为机器人创建自动测试的最佳方法。
考虑两个问题:
答案 0 :(得分:7)
一种替代方法是使用DirectLine进行功能测试。需要注意的是,机器人需要托管,但它很强大。查看AzureBot tests project以查看其工作原理。
另一种选择是,正在做BotFramework团队正在进行的一些单元测试。
如果您使用的是对话框,可以查看EchoBot unit tests,因为它们很容易理解。
如果您正在使用Chain,请查看他们如何使用AssertScriptAsync方法。
如果您正在寻找模拟Luis服务的方法,请参阅this。
答案 1 :(得分:3)
您可能需要考虑Selenium。 Selenium是Web浏览器自动化软件,允许您编写以编程方式读取和写入网页DOM的测试。使用Selenium脚本,您可以:
答案 2 :(得分:1)
对于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');
});
...等...