我有一个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
我在这里缺少什么想法?
1 回答
好的,我发现了问题 . 我的
registerCallback()
方法中有一个错误 . 问题是我试图以 Map (callback[message]
)的形式访问callback
参数,这当然不起作用 .没关系,我理解为什么这是一个问题 . 但是,为什么Groovy编译器错误消息如此神秘?它指的不是
registerCallback()
中的那个有问题的行,而是指我称之为该函数的行 .