是否可以封装测试方法以重用它?
我可以描述我想要实现的目标
// generic test method
def genericMethod(args){
given:
def request = args.request
when:
def response = http.post(request)
then:
response.data == args.responseData
}
def specificTest1(){
genericMethod([request: 1, responseData: 2])
}
def specificTest2(){
genericMethod([request: 'A', responseData: 'B'])
}
不幸的是,Spock似乎并没有这样做。
我知道expect:
和where:
标签,但它们不适合我的情况。
是否可以模拟我在上面的代码中指定的内容?
部分成功
仅在使用expect:
时我可以获得部分成功。
// generic test method
def genericMethod(args){
def request = args.request
def response = http.post(request)
response.data == args.responseData
}
def specificTest1(){
expect:
genericMethod([request: 1, responseData: 2])
}
测试运行,但specificTest1()
仅测试genericMethod
是否为F(是的,很明显。:-))
答案 0 :(得分:1)
由于这也是issue #724,我也会在这里发布答案:
您需要在比较之前显式添加断言。隐式断言仅应用于特殊块,例如then:block。
所以response.data == args.responseData
会让它发挥作用。