我在特定的Spec中有Spock Helper方法。此方法生成字符串以测试大小的约束:
def genString(size) {
def nameTooLong = 'x'
size.times { nameTooLong <<= "x" }
return nameTooLong
}
我想在其他规范中重用这个辅助方法。怎么做?
感谢您的帮助
P.S。还有groovy kung-fu在单个短行中完成相同的事情,所以我可以在初始化实例时作为参数传递?
答案 0 :(得分:3)
我对Spock测试有类似的需求,并且在生成测试数据的规范中重用了辅助方法。
这些辅助方法在一个规范中启动。
我刚刚使用静态方法重构并创建了一个辅助类。
您也可以这样做,创建一个帮助类并按原样移入您的测试方法:
class TestDataGen {
....
public static String genString(size) {
def nameTooLong = 'x'
size.times { nameTooLong <<= "x" }
return nameTooLong
}
....
}
答案 1 :(得分:3)
您也可以使用继承。
class SharedFixture extends Specification {
def sharedMethod() {
......
}
}
然后
class TestClass extends SharedFixture {
def test() {
sharedMethod()
}
}
答案 2 :(得分:1)
您还可以将功能更改为:
def genString(size) {
'x' * ( size + 1 )
}
或
def genString(size) {
'x'.padLeft( size + 1, 'x' )
}
第二个,您可能可以内嵌到您的测试中,因为它非常独立