我有一个Groovy测试类MsgDispatcherTest extends GroovyTestCase
在这个课程中有以下测试用例:
@Test
void test_register()
{
def d = MsgDispatcher.instance // MsgDispatcher is a singelton
def cb1Called = 0
def cb1 = { cb1Called++; void }
d.registerCallback("msg1", cb1) // closure cb1 should be registered
}
MsgDispatcher.registerCallback
的界面如下所示:
void registerCallback(String message, Closure callback)
{
assert callback && message
// ...
}
现在,当我运行此测试用例时,我在调用d.registerCallback("msg1", cb1)
时收到以下错误消息:
groovy.lang.MissingPropertyException:没有这样的属性:msg1 for class:ecs.MsgDispatcherTest
我在这里缺少什么想法?
答案 0 :(得分:0)
好的,我发现了问题。我的registerCallback()
方法存在错误。问题是我尝试访问callback
参数作为地图(callback[message]
),这当然不起作用。
没关系,我明白为什么这是一个问题。但是,为什么Groovy编译器错误消息如此神秘?它指的是registerCallback()
中不存在问题的行,而是指我称之为该函数的行。