gpt4 book ai didi

spock - 如何使特征方法成为条件

转载 作者:行者123 更新时间:2023-12-02 17:15:58 25 4
gpt4 key购买 nike

在我的测试中,我有一些只需要在特定情况下运行的特征方法。我的代码看起来像这样:

class MyTest extends GebReportingSpec{

def "Feature method 1"(){
when:
blah()
then:
doSomeStuff()
}

def "Feature method 2"(){
if(someCondition){
when:
blah()
then:
doSomeMoreStuff()
}
}

def "Feature method 3"(){
when:
blah()
then:
doTheFinalStuff()
}
}

我应该注意,我正在使用自定义 spock 扩展,它允许我运行规范的所有特征方法,即使以前的特征方法失败也是如此。

我刚刚意识到的事情和我写这篇文章的原因是因为“特征方法 2”出于某种原因没有出现在我的测试结果中,但方法 1 和 3 出现了。即使 someCondition 设置为 true,它也不会出现在构建结果中。所以我想知道为什么会这样,以及如何使这个特征方法有条件

最佳答案

Spock 对条件执行功能有特别的支持,看看@IgnoreIf@Requires .

@IgnoreIf({ os.windows })
def "I'll run everywhere but on Windows"() { ... }

你也可以在条件闭包中使用静态方法,它们需要使用限定版本。

class MyTest extends GebReportingSpec {
@Requires({ MyTest.myCondition() })
def "I'll only run if myCondition() returns true"() { ... }

static boolean myCondition() { true }
}

关于spock - 如何使特征方法成为条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46552292/

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