当前位置: 首页 > 知识库问答 >
问题:

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

公西英叡
2023-03-14

我有一个Groovy测试类MsgDispatcherTest扩展了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)时收到以下错误消息:

棒极了。lang.MissingPropertyException:类:ecs没有此类属性:msg1。MsgDispatcherTest

你知道我错过了什么吗?

共有1个答案

吕英才
2023-03-14

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

没关系,我明白为什么这是个问题。然而,为什么Groovy编译器错误消息如此神秘?它不是指registerCallback()中有问题的那一行,而是指我调用该函数的那一行。

 类似资料:
  • 问题内容: 我有一个测试用例: 我想在其他测试用例中使用它: 这引起了: 我看了调用异常的单元测试代码,看起来测试不应该以这种方式编写。有没有一种标准的方法可以编写您想要测试的东西,以便以后的测试可以重用?还是有解决方法? 作为一种可疑的解决方法,我现在添加了一个空方法。 问题答案: 确实具有深层的魔力- 如果您选择使用它来运行单元测试(我愿意,因为这样,我可以在工作场所中使用集成到构建系统中的非

  • 试图通过解析JSON提取response属性时,收到NoSuchProperty错误

  • 我有一个混合了objective-c和Swift的项目,我试图为它编写单元测试。我的项目名称是:Alphaproject我的产品模块名称是:Alphaproject我在我的主要目标(Alphaproject)中设置为YES Defines module,并设置为YES EnableTestability,以便仅在此同一目标中进行调试。 在我的测试类中,我尝试导入我的产品模块名称: @可测试导入项目

  • 我需要一些帮助,我在jenkins上启动了一个构建,我得到以下错误: 从fbc5e195a176b64d916adf6430669734a80cb9bc获得的Jenkinsfile在耐久性级别下运行:最大生存能力[Pipeline]管道末端groovy。lang.MissingPropertyException:类:groovy没有这样的属性:节点。在groovy绑定。朗朗,装订。org上的get

  • 日志消息如下所示: 2018-09-24 13:49:23,669错误O.A.J.M.JSR223预处理器:JSR223脚本中的问题,JSR223预处理器javax.script.scriptexception:groovy.lang.missingPropertyException:没有这样的属性:用于类的it:Script32 at org.codehaus.groovy.JSR223.gro