スプリングコンテキストに配列の配列を置きます
-
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
(それはコンパイラに同じだ)「[]オブジェクト」「...オブジェクト」あなたの試験方法は、いずれかを宣言することができますか。
他のヒント
私はこれを行うための正しい方法として、TestNGの、そのデータソースの構文を使用します。あなたは確かにこの春の設定を行うことができますが、それのテストコードので、私はTestNGのは、そのため、より自然な家だと思います。
所属していません StackOverflow