首页 文章

在Groovy测试用例中没有这样的属性

提问于
浏览
0

我有一个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 回答

  • 0

    好的,我发现了问题 . 我的 registerCallback() 方法中有一个错误 . 问题是我试图以 Map ( callback[message] )的形式访问 callback 参数,这当然不起作用 .

    没关系,我理解为什么这是一个问题 . 但是,为什么Groovy编译器错误消息如此神秘?它指的不是 registerCallback() 中的那个有问题的行,而是指我称之为该函数的行 .

相关问题