m3t*_*man 2 testing groovy spock
我的东西看起来像是类似的规格:
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
}
Run Code Online (Sandbox Code Playgroud)
但是,在运行时,我得到:groovy.lang.MissingMethodException: No signature of method doFlow() is applicable for arguments Something, Record values: [given values]
.
这两个"我的流程"和"doFlow"是功能的方法,因为他们有块如given
,when
和then
.Spock负责调用特征方法,而一个特征方法不能调用另一个特征方法.如果doFlow
是一个帮助方法,它应该使用显式assert
语句,不应该有任何块.
PS:特征方法不能声明方法参数,除非它们是数据驱动的(即有一个where
块).
PPS:功能方法不能只有given
/ and
块.(你会得到一个编译错误.)
归档时间: |
|
查看次数: |
1178 次 |
最近记录: |