gpt4 book ai didi

groovy - 如何使用方法评估 Spock @IgnoreIf

转载 作者:行者123 更新时间:2023-12-04 16:08:15 27 4
gpt4 key购买 nike

根据以下文章:

https://dzone.com/articles/spocklight-ignore

您应该能够使用静态方法评估 Spock @IgnoreIf 注释。我完全按照文章中的方法尝试了 isOsWindows() 方法,得到了以下结果:

org.spockframework.runtime.extension.ExtensionException: Failed to evaluate @IgnoreIf condition
...
Caused by: groovy.lang.MissingMethodException: No signature of method: MySpec$__spock_feature_1_3_closure1.isOsWindows() is applicable for argument types: () values: []

有人对此有任何见解吗?我真的只想为每个规范设置一个真/假,我不需要其他示例中列出的任何操作系统/系统属性。

谢谢

最佳答案

这个例子有点过时了用Spock 0.7-groovy-2编写的代码,如果你想使用静态方法那么你需要使用合格的版本ClassName.method()

package com.mrhaki.spock

import spock.lang.*

class SampleRequiresSpec extends Specification {

private static boolean isOsWindows() {
System.properties['os.name'] == 'windows'
}

@IgnoreIf({ SampleRequiresSpec.isOsWindows() })
def "run only if run on non-windows operating system"() {
expect:
true
}
}

如果你只想在windows上运行,那么有一些内置的便利功能(Spock 1.+)。

  • 操作系统@IgnoreIf({ os.windows || os.linux || os.macOs || os.solaris || os.other })
  • Java版本@IgnoreIf({ jvm.java5 || jvm.java6 || jvm.java7 || jvm.java8 || jvm.java9 })
  • 环境变量 @IgnoreIf({ !env.containsKey("FOOBARBAZ") }) @IgnoreIf({ env["FOOBARBAZ"] == 'false'})
  • SystemProperty @IgnoreIf({ !sys.contains("java.version") }) @IgnoreIf({ sys["java.version"] == '1.6' })

关于groovy - 如何使用方法评估 Spock @IgnoreIf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44013252/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com