Java Spock框架:如何创建自定义数据提供程序
我的工作对象是:Java Spock框架:如何创建自定义数据提供程序,java,spock,spring-test,spring-test-mvc,spock-reports,Java,Spock,Spring Test,Spring Test Mvc,Spock Reports,我的工作对象是: 春季MVC 弹簧MVC测试 斯波克框架 关于Spock使用@Unroll我对where块有以下情况 我可以有以下几点: where: "Internal" uriRequestReport << [ControllerSupportTest.createUrl1(), ControllerSupportTest.createUrl2()] methodNameReport << [ControllerSupportTest.METH
- 春季MVC
- 弹簧MVC测试
- 斯波克框架
@Unroll
我对where
块有以下情况
我可以有以下几点:
where: "Internal"
uriRequestReport << [ControllerSupportTest.createUrl1(), ControllerSupportTest.createUrl2()]
methodNameReport << [ControllerSupportTest.METHODNAME_FINDONE_BYID, ControllerSupportTest.METHODNAME_FINDONE_BYID ]
[uriRequestReport, methodNameReport, moreVariablesifExists] << [MyDataSetUtil.theMethod()]
在此之前,我有两种问题
where
块添加新变量,如mediaType
,则必须创建一个新方法,如methodNames()
ControllerSupportTest.METHODNAME\u FINDONE\u BYID
public static String[] mediaTypes(){
String[] mediaTypes = (String[]) createArray(MediaType.APPLICATION_XML_VALUE);
return mediaTypes;
}
我需要更实用的东西
我也从SO那里读了下面的帖子
- (上面的源代码)
where:
[_, name, gender, expected] << new MultilineProvider(source: userData)
要求:
我希望通过MyDataSetUtil.theMethod()
(参见上面显示的行)返回一个集合,其中每个项表示与
uriRequestReport << [ControllerSupportTest.createUrl1(), ControllerSupportTest.createUrl2()]
methodNameReport << [ControllerSupportTest.METHODNAME_FINDONE_BYID, ControllerSupportTest.METHODNAME_FINDONE_BYID ]
uriRequestReport只需编写method(),它将返回一组条目,其中每个条目都有一次测试运行所需的所有数据。URL的ArrayList、方法名的ArrayList和其他数据的ArrayList。然后将所有列表放在一个大的ArrayList或map中并返回此对象
{
"urls":[list of urls]
"methods":[list of methodNames]
"otherdata":[listOfOtherData]
}
直接返回映射,或将这些映射制作成arraylist。您可以尝试以下操作:
where: "Internal"
uriRequestReport << [ControllerSupportTest.createUrl1(), ControllerSupportTest.createUrl2()]
methodNameReport = [ControllerSupportTest.METHODNAME_FINDONE_BYID]
其中:“内部”
令人惊讶的是,这个问题没有标记到java
。。。已经修好了。。。
{
"urls":[list of urls]
"methods":[list of methodNames]
"otherdata":[listOfOtherData]
}
where: "Internal"
uriRequestReport << [ControllerSupportTest.createUrl1(), ControllerSupportTest.createUrl2()]
methodNameReport = [ControllerSupportTest.METHODNAME_FINDONE_BYID]