gpt4 book ai didi

java - 如何在Junit 4中重写JUnit 3的数据驱动测试套件?

转载 作者:太空宇宙 更新时间:2023-11-04 08:53:33 24 4
gpt4 key购买 nike

我正在使用基于 Rainsberger's JUnit Recipes 运行 JUnit 3 的数据驱动测试套件。这些测试的目的是检查与一组输入输出对相关的某个功能是否正确实现。

这是测试套件的定义:

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 测试方法的多个输入输出参数?

This question答案向我解释了 JUnit 3 和 4 在这方面的区别。 This question答案描述了为一组类创建测试套件的方法,但不描述为具有一组不同参数的方法创建测试套件的方法。

解决方案:

根据 drscroogemcduck 的回答,这是 the exact page有什么帮助。

最佳答案

非常简单的方法:

你总是可以有一个方法:

checkGetString(date, dateFormat, expectedValue)

然后就有一个方法

@Test
testGetString:

checkGetString(date1, '...', '...');
checkGetString(date2, '...', '...');

更好的方法:

http://junit.sourceforge.net/javadoc_40/org/junit/runners/Parameterized.html

或者更好的junit理论:

http://isagoksu.com/2009/development/agile-development/test-driven-development/using-junit-datapoints-and-theories/

关于java - 如何在Junit 4中重写JUnit 3的数据驱动测试套件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2818041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com