0

dbUnit をプロジェクトに統合することを楽しみにしています。プロジェクトにはSpringがあり、ORMはありません。XML dataSet を db にロードしているときに、org.dbunit.dataset.NoSuchTableException: XXX_VW "XXX_VW" is a db view が発生します。ただし、データセットを任意のテーブルにロードできます。必要なビューが終了し、メタデータが類似していることを db で確認しました。

以下は、テストのセットアップメソッド中に実行するコードです。

DataSource dc = (MCDataSource) context.getBean("dataSource");
            databaseTester = new DataSourceDatabaseTester(dc, dc.getUsername());
            DatabaseConfig config = databaseTester.getConnection().getConfig();
            config.setProperty(DatabaseConfig.PROPERTY_TABLE_TYPE, new String[]{"TABLE", "VIEW"});
            databaseTester.setDataSet(this.getDataSet());
            databaseTester.setTearDownOperation(DatabaseOperation.DELETE_ALL);
            databaseTester.onSetup();

何が問題なのですか?

4

1 に答える 1

0

代わりに、OperationListener のライフサイクル メソッド中に、setOperationListener を実装して setProperty を実行します。

    databaseTester.setOperationListener(new IOperationListener() {

        @Override
        public void operationTearDownFinished(IDatabaseConnection connection) {
            // TODO Auto-generated method stub

        }

        @Override
        public void operationSetUpFinished(IDatabaseConnection connection) {
            // TODO Auto-generated method stub

        }

        @Override
        public void connectionRetrieved(IDatabaseConnection connection) {
            DatabaseConfig config = connection.getConfig();
            config.setProperty(DatabaseConfig.PROPERTY_TABLE_TYPE, new String[]{"TABLE", "VIEW"});
    databaseTester.setDataSet(this.getDataSet());
    databaseTester.setTearDownOperation(DatabaseOperation.DELETE_ALL);
    databaseTester.onSetup();
于 2015-04-29T09:08:20.090 に答える