Как переписать управляемые данными тестовые наборы JUnit 3 в Junit 4?
Я использую управляемые данными тестовые наборы под управлением JUnit 3, основанные на рецептах Rainsberger's JUnit. Цель этих тестов - проверить, правильно ли реализована определенная функция, связанная с набором пар ввода-вывода.
Вот определение набора тестов:
public static Test suite() throws Exception {
TestSuite suite = new TestSuite();
Calendar calendar = GregorianCalendar.getInstance();
calendar.set(2009, 8, 05, 13, 23); // 2009. 09. 05. 13:23
java.sql.Date date = new java.sql.Date(calendar.getTime().getTime());
suite.addTest(new DateFormatTestToString(date, JtDateFormat.FormatType.YYYY_MON_DD, "2009-SEP-05"));
suite.addTest(new DateFormatTestToString(date, JtDateFormat.FormatType.DD_MON_YYYY, "05/SEP/2009"));
return suite;
}
и определение класса тестирования:
public class DateFormatTestToString extends TestCase {
private java.sql.Date date;
private JtDateFormat.FormatType dateFormat;
private String expectedStringFormat;
public DateFormatTestToString(java.sql.Date date, JtDateFormat.FormatType dateFormat, String expectedStringFormat) {
super("testGetString");
this.date = date;
this.dateFormat = dateFormat;
this.expectedStringFormat = expectedStringFormat;
}
public void testGetString() {
String result = JtDateFormat.getString(date, dateFormat);
assertTrue( expectedStringFormat.equalsIgnoreCase(result));
}
}
Как можно протестировать несколько параметров ввода-вывода метода, используя JUnit 4?
Этот вопрос и ответы объяснили мне различие между JUnit 3 и 4 в этом отношении. Этот вопрос и ответы описывают способ создания набора тестов для набора классов, но не для метода с набором различных параметров.
Решение:
Основываясь на ответе drscroogemcduck, это именно та страница, которая помогла.
1 ответ
Действительно простой способ:
у вас всегда может быть метод:
checkGetString(date, dateFormat, expectedValue)
а потом просто есть метод
@Test
testGetString:
checkGetString(date1, '...', '...');
checkGetString(date2, '...', '...');
лучший способ:
http://junit.sourceforge.net/javadoc_40/org/junit/runners/Parameterized.html
или лучше теории юнитов: