【问题标题】:Spock: where does method `setup` come from?Spock:方法“setup”从何而来?
【发布时间】:2019-12-26 13:31:39
【问题描述】:

我知道设置规范(测试类)和特性(测试方法)的方法分别是 setupSpecsetup...

我不太确定相应的“拆除”方法是什么,所以我想我会查一下。原来这些分别是cleanupSpeccleanup,正如here 所记录的那样。

但我也查阅了 Spock 1.2 API Javadoc。不仅上面的4个方法都不是spock.lang.Specification的方法,而且查找这个Javadoc的索引我发现没有任何引用。

显然 Spock 是 Groovy 而不是 Java,所以这也许可以通过一些 Groovy 魔法来解释。谁能解释这些方法的来源?

有趣的是,我实际上无法在线找到 Spock 1.2 API Javadoc 的链接。我从 Gradle 下载的源 .jar 编译了我的。

【问题讨论】:

    标签: api groovy spock


    【解决方案1】:

    我试图在 spock 源代码中找到答案,我发现它使用GroovyClassVisitor 来查找和执行这些方法。

    快速分解发生的事情:

    Indentifiers.java 类,包含方法名称等常量(第 58 行)和包含所有“夹具方法名称”的集合(第 72 行)

    SpecParser.java GroovyClassVisitor 解析所有规范,并尝试找到fixture方法并构建FixtureMethods(方法buildFixtureMethod在第131行)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多