문제

방금 스프링을 사용하여 데이터 소스를 제공하는 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가 더 자연스러운 집이라고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top