参数化 spock 中的对象
Parameterizing Objects in spock
我在使用 spock where 块对对象列表进行参数化时遇到问题。似乎 ListInput 值不是从 where 子句中获取的,而是总是出现空值。我已经验证了字符串和其他原始类型的相同功能,并且工作正常。
Spock 是否支持参数化对象?如果是,这里的问题是什么。
def "check Param Of List of Objects"()
{
expect:
def a= hasflag(ListInput);
a== flag
where:
ListInput | flag
BOList1 | true
BOList2 | false
}
此处 BOList1 的类型是一个 java ArrayList 包含对象
您提供的信息还不够明确,但我会尽力提供帮助。
where 块不仅仅是一个代码块,它更像是传递给方法的一些参数。它 可以 做很多事情,但有时您需要以不同的方式传递代码。
注意事项:
- 不允许使用 Void 方法(但您可以使用 .with{} 解决此问题)
- 迭代参数不能同时是派生参数(从其他参数构造)
- 如果您引用 class 级变量(在 class 中定义但在此测试之外),则需要为它们提供 @Shared 注释以便您的测试可以访问。
提供有关您的列表来源的更多信息将有助于我提供更好的建议。
最后提示;显式转换您的参数以查看是否能为您提供更多信息
def "check Param Of List of Objects"(ArrayList listInput, boolean flag) {
expect:
flag == hasflag(ListInput);
where:
listInput | flag
BOList1 | true
BOList2 | false
}
我在使用 spock where 块对对象列表进行参数化时遇到问题。似乎 ListInput 值不是从 where 子句中获取的,而是总是出现空值。我已经验证了字符串和其他原始类型的相同功能,并且工作正常。 Spock 是否支持参数化对象?如果是,这里的问题是什么。
def "check Param Of List of Objects"()
{
expect:
def a= hasflag(ListInput);
a== flag
where:
ListInput | flag
BOList1 | true
BOList2 | false
}
此处 BOList1 的类型是一个 java ArrayList 包含对象
您提供的信息还不够明确,但我会尽力提供帮助。
where 块不仅仅是一个代码块,它更像是传递给方法的一些参数。它 可以 做很多事情,但有时您需要以不同的方式传递代码。
注意事项:
- 不允许使用 Void 方法(但您可以使用 .with{} 解决此问题)
- 迭代参数不能同时是派生参数(从其他参数构造)
- 如果您引用 class 级变量(在 class 中定义但在此测试之外),则需要为它们提供 @Shared 注释以便您的测试可以访问。
提供有关您的列表来源的更多信息将有助于我提供更好的建议。
最后提示;显式转换您的参数以查看是否能为您提供更多信息
def "check Param Of List of Objects"(ArrayList listInput, boolean flag) {
expect:
flag == hasflag(ListInput);
where:
listInput | flag
BOList1 | true
BOList2 | false
}