最近,我想到了为Hubot脚本创建一个更易于理解的测试套件的想法。
我创建了hubot-chat-testing模块,用户可以在其中使用特殊的API,在后台生成expect
断言。
也就是说,我真的不知道如何进行全面测试。
我写了technical tests来检查该机制是否起作用(添加新消息,自动回复等)。
作为最终用户测试,我已经在hubot-hello(机器人响应)和hubot-sayings(机器人大脑)的API中实现了测试。如您所见,我编写了类型为“当用户编写正确的聊天记录时,模块应该不返回任何错误”的测试,但是我该如何编写类似“当用户出错或聊天记录中的消息完成时”的测试不匹配,模块应该失败”?
我已经找到了Chai库的fail方法,但是它实际上并不适合我的需要,因为我必须做这样的事情:
function someFailingFunction(){
chat.when('user says hi')
.user('username').messagesBot('hi')
.bot.repliesWith('false message, i will not greet you')
.expect('the bot should say hi to the user')
}
expect(someFailingFunction).to.fail('The message in the chat history does not match')
是否有可能还是我必须使用其他测试库?
我添加了the tests,其中涵盖了我要测试的功能。现在,我手动取消注释它们,只是为了检查它们是否都无法正确响应,这就是我要自动执行的操作。