Debugging 在使用Hubot测试助手和chai测试Hubot脚本时出现AssertionError

Debugging 在使用Hubot测试助手和chai测试Hubot脚本时出现AssertionError,debugging,testing,coffeescript,hubot,Debugging,Testing,Coffeescript,Hubot,我正在为我的Hubot编写一个简单的测试(它充当一个Slack bot),以检查我的bot是否会发送一个响应触发器的回复。我遵循了中所示的示例,但测试结果为AssertionError(详细信息如下),我不确定原因。如有任何建议,将不胜感激 我假设问题与测试有关,而不是脚本(break start.coffee),因为我在测试脚本时从Slack向bot发送了一条实际消息,得到了正确的回复 #break-start.coffee #基本上,机器人会对任何午休时间的用户说“稍后的鳄鱼”。 modul

我正在为我的Hubot编写一个简单的测试(它充当一个Slack bot),以检查我的bot是否会发送一个响应触发器的回复。我遵循了中所示的示例,但测试结果为
AssertionError
(详细信息如下),我不确定原因。如有任何建议,将不胜感激

我假设问题与测试有关,而不是脚本(
break start.coffee
),因为我在测试脚本时从Slack向bot发送了一条实际消息,得到了正确的回复

#break-start.coffee
#基本上,机器人会对任何午休时间的用户说“稍后的鳄鱼”。
module.exports=(机器人)->
robot.response/off to午餐/i(res)->
res.reply(“后来的鳄鱼”)
#break-start-test.coffee
“严格使用”
Helper=require('hubot-test-Helper')
helper=new helper(“../scripts/break start.coffee”)
请求=要求('请求')
expect=require('chai')。expect
描述“机器人响应用户消息”,->
每次之前->
#在运行测试之前设置好房间。
@room=helper.createRoom()
每次之后->
#测试结束后,将其拆下以释放侦听器。
@破坏房间
它“响应外出午餐的用户”,->
@room.user.say('bob','hubot Off to sunch')。然后=>
expect(@room.messages).to.eql[
['bob','@hubot出去吃午饭']
['hubot','bob Later alligator']
]

顺便说一句,以前这里有一个非常类似的帖子,但没有得到回复。

我认为问题在于缩进错误

@room.user.say
调用将传递一个空函数作为承诺解析,而不是expect块,因为这应该缩进到另一个级别

这与房间中只有一条消息的结果相符,因为在异步
@room.user.say()执行
expect
调用之前执行了该调用:

it 'responds to users who are off to lunch', ->
  @room.user.say('bob', '@hubot Off to lunch').then =>
    expect(@room.messages).to.eql [
      ['bob', '@hubot Off to lunch']
      ['hubot', '@bob Later alligator']
    ]

工作得很好!非常感谢你。
it 'responds to users who are off to lunch', ->
  @room.user.say('bob', '@hubot Off to lunch').then =>
    expect(@room.messages).to.eql [
      ['bob', '@hubot Off to lunch']
      ['hubot', '@bob Later alligator']
    ]