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