把阵列的阵列划分为弹簧上下文
-
20-09-2019 - |
题
我刚发现,使用Spring以提供数据源的TestNG的测试用例。结果的代码是相当干净简洁。
然而,我需要扩展的测试用例,这样他们可以采取的输入变量列表。
我使用的bean引用的列表清单,因为我已经尝试以下卡住?有没有办法做到这一点,仍然是相当(即不分手输入之后输出的逻辑流程)?有没有更好的办法?
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="stringPatternRegexMap" class="java.util.HashMap">
<constructor-arg>
<map>
<entry key="some input #1" value="expected output #1"/>
<entry key="some input #2" value="expected output #2"/>
<entry key="some input #3" value="expected output #3"/>
<entry key-ref="multi-list-1" value="expected output #3"/>
<entry key-ref="null-reference" value="null-reference"/>
</map>
</constructor-arg>
</bean>
<bean id="multi-list-1">
<list>
<value>apple</value>
<value>banana</value>
<value>orange</value>
</list>
</bean>
<bean id="null-reference">
<value>
<null/>
</value>
</bean>
</beans>
请注意出现的原始代码,以使用一个列表的地图,而不是因为它似乎更简单的方法,以提供一组字符串[2]。
解决方案
没有,则可以使用一个@dataProvider养活试验方法用的参数可变数目:
@DataProvider
public Object[][] dp() {
return new Object[][] {
new Object[] { new Object[] { "a" } },
new Object[] { new Object[] { "b", "c" } },
};
}
@Test(dataProvider = "dp")
public void g1(Object... params) {
System.out.println("Received " + params.length + " parameters");
}
将打印:
Received 1 parameters
Received 2 parameters
请注意您的测试方法可以声明或者“对象...”或“对象[]”(它是相同的编译器)。
其他提示
我会用TestNG的和其DataSource构建为做到这一点的正确方法。你当然可以使这个Spring配置,但因为它是测试代码,我认为TestNG的是更自然的归宿吧。
不隶属于 StackOverflow