gpt4 book ai didi

testing - Spock MissingMethodException

转载 作者:行者123 更新时间:2023-11-28 20:03:21 26 4
gpt4 key购买 nike

我有一些看起来像类似规范的东西:

def "my spec"(Record record) {
given:
Something something = getSomething()
and:
otherThing = getOtherThing()

doFlow(something, record)
if (record.someType = Types.SOME_SPECIFIC_TYPE) {
doFlow(something, record)
}
}

def doFlow(Something something, Record record) {
when:
//code
then:
//asserts

when:
//code
and:
//mode code
then:
//code
}

但是,在运行时,我得到:groovy.lang.MissingMethodException: No signature of method doFlow() is applicable for arguments Something, Record values: [given values]

最佳答案

“my flow”和“doFlow”都是特征方法,因为它们具有诸如 givenwhenthen 等 block 。调用特征方法是 Spock 的责任,一个特征方法不能调用另一个。如果 doFlow 是一个辅助方法,它应该使用显式的 assert 语句,并且不应该有任何 block 。

PS:特征方法不能声明方法参数,除非它们是数据驱动的(即有一个 where block )。

PPS:特征方法不能只有 given/and block 。 (你会得到一个编译错误。)

关于testing - Spock MissingMethodException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19930573/

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