동일한 시험 방법은 서로 다른 데이터를 여러 번 실행 매개 변수를 JUnit 테스트를 실행하는 좋은 가능성이있다 . 거기에 어떤 알려진 해결 방법이 있습니까?프리미티브가 아닌 매개 변수로 매개 변수화 된 JUnit 테스트? <a href="http://junit.org/apidocs/org/junit/runners/Parameterized.html" rel="nofollow">http://junit.org/apidocs/org/junit/runners/Parameterized.html</a></p> <p>불행하게도, 단지 기본 매개 변수 또는 문자열 있지만 개체를 사용하는 것이 가능 보인다 여기에 설명 된대로
3
A
답변
7
@Parameters 주석을 사용하는 data()
메서드 유형은 List<Object[]>
이므로 모든 개체를 넣을 수 있습니다.
에 통과하기가 예를 들면, Money
객체, 배열이 될 것 목록으로 변환 :
{{새 돈 (26, "CHF")}, {새 돈 (12 , "USD")}}
테스트 클래스의 생성자는 Money 개체를 인수로 가져와야합니다.
0
사용 JUnitParams 대신 ...
+0
링크를 더 이상 사용할 수 없습니다. –
0
junitparams.googlecode.com 최근 내가 zohhak 프로젝트를 시작했다. 그것은 당신이 작성할 수 있습니다 :
@TestWith({
"25 USD, 7",
"38 GBP, 2",
"null, 0"
})
public void testMethod(Money money, int anotherParameter) {
...
}
0
사용 목적은 Junit와 @Parameters
를 사용하는 것도 가능합니다.
예 : -
@RunWith(Parameterized.class)
public class TestParameter {
@Parameter(value=0)
public int expected;
@Parameter(value=1)
public int first;
@Parameter(value=2)
public int second;
private Calculator myCalculator;
@Parameters(name = "Test : {index} : add({1}+{2})= Expecting {0}")//name will be shared among all tests
public static Collection addNumbers() {
return Arrays.asList(new Integer[][] { { 3, 2, 1 }, { 5, 2, 3 }, { 9, 8, 1 }, { 200, 50, 150 } });
}
@Test
public void testAddWithParameters() {
myCalculator = new Calculator();
System.out.println(first + " & " + second + " Expected = " + expected);
assertEquals(expected, myCalculator.Add(first, second));
}
}
는이 문제에 대한 해결책을 파악 했습니까? –