배열 배열을 스프링 컨텍스트에 넣습니다
-
20-09-2019 - |
문제
방금 스프링을 사용하여 데이터 소스를 제공하는 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
테스트 방법은 "Object ..."또는 "Object [](컴파일러와 동일)를 선언 할 수 있습니다.
다른 팁
TestNG와 데이터 소스 구성을 올바른 방법으로 사용합니다. 당신은 확실히 이번 봄 구성을 만들 수 있지만, 테스트 코드이기 때문에 TestNG가 더 자연스러운 집이라고 생각합니다.
제휴하지 않습니다 StackOverflow