1

Rainsberger の 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 を使用してメソッドの複数の入出力パラメータをテストするにはどうすればよいですか?

この質問と回答は、この点に関する JUnit 3 と 4 の違いを説明してくれました。 この質問と回答は、一連のクラス用のテスト スイートを作成する方法を説明していますが、一連の異なるパラメーターを持つメソッド用ではありません。

解決策:

drscroogemcduck の回答に基づいて、これは正確なページです。

4

1 に答える 1

1

本当に簡単な方法:

いつでもメソッドを持つことができます:

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/

于 2010-05-12T11:10:05.747 に答える