4

DbUnitをTestNGと統合する必要があります。

1)DbUnitは基本的にJUnitの拡張であるため、TestNGでDbUnitを使用することは可能ですか。
2)はいの場合、どのように?

4

3 に答える 3

2

最後に、TestNGでDbUnitを使用する方法を見つけました!

IDatabaseTesterのインスタンスの使用は機能します。

ただし、別の回避策は次のとおりです。AbstractDatabaseTesterを拡張し、getConnectionを実装して、必要な関数をオーバーライドします。ただし、重要なことの1つは、テストの前後にonSetup()とonTeardown()を呼び出すことです。

お役に立てれば...

于 2011-07-12T20:57:55.390 に答える
1

何をしようとしているのか正確にはわかりませんが、 Unitilsが役立つかもしれません。これはdbunit拡張機能に似ていますが、それに限定されるものではなく、TestNgとの統合をサポートします(テストケースのUnitilsTestNGクラスを拡張することにより)。

于 2011-07-11T08:56:46.390 に答える
0

これは、必要な機能を実行する単純なクラスです。

public class SampleDBUnitTest {

    IDatabaseTester databaseTester;
    IDataSet dataSet;

    @BeforeMethod
    public void setUp() throws Exception {
        // These could come as parematers from TestNG 
        final String driverClass = "org.postgresql.Driver";
        final String databaseUrl = "jdbc:postgresql://localhost:5432/database";
        final String username = "username";
        final String password = "password";

        dataSet = new FlatXmlDataSet(Thread.currentThread().getContextClassLoader().getResourceAsStream("dataset.xml"));
        databaseTester = new JdbcDatabaseTester(driverClass, databaseUrl, username, password);
        databaseTester.setSetUpOperation(DatabaseOperation.CLEAN_INSERT);
        databaseTester.setDataSet(dataSet);
        databaseTester.setTearDownOperation(DatabaseOperation.NONE);
        databaseTester.setDataSet(dataSet);

        databaseTester.onSetup();
    }

    @AfterMethod
    public void tearDown() throws Exception {
        databaseTester.onTearDown();
    }

    @Test
    public void t() throws Exception {
        // Testing, testing
    }
}
于 2013-07-05T06:25:04.900 に答える