node.js - 使用 Chai 在 Bot Framework 中对多个消息进行单元测试
问题描述
我正在使用 Chai 通过单元测试来覆盖我的聊天机器人(使用 Bot Framework 构建)。在一种情况下,机器人通过 2 条消息响应用户。我想检查两条消息是否正确。我发现这个测试唯一没有失败的是:
bot.on('send', (message) => {
expect(message.text).to.satisfy(function(text) {
if (text === message1 || text === message2 ) {
return true;
}
else {
return false;
}
});
});
done();
正如我通过测试看到的,回调发生了两次,当机器人正常运行时测试通过;但是,测试并没有真正检查是否以正确的顺序返回了 2 条不同的消息。
有没有办法使用 Chaiexpect
或其他工具来做到这一点?
解决方案
例如,如果您使用 sinon 创建回调函数的 spy,您可以断言第一次调用回调是使用消息 1,第二次调用是使用消息 2。 spy.firstCall.callWith(message1); spy.secondCall.callWith(message2); 如果您愿意,可以在这里阅读更多内容 - http://sinonjs.org/releases/v6.0.1/spies/
推荐阅读
- python - 如何通过加快网格搜索和for循环的工作来优化脚本?
- android - UPNP/DLNA 服务器播放暂停在三星电视 android 上不起作用
- python - Seldon 核心中的 Flask 重定向替代方案
- list - 如何在 dbt jinja 中将两个表加入字典
- amazon-web-services - 为什么终止的实例仍显示在 GlobalVIew 中?
- c# - 为什么 FedEx Rate API 会因 SSL/TLS 错误而失败?
- excel - 如果满足两个条件,则执行操作
- python - setup.py 如何引用源代码库中的其他文件?
- javascript - 如何用 jquery 添加 ul 元素的样式?
- c# - C# ASP.Net Core 在表单提交失败后保留提交的文件