私は現在、データベースのパッケージと機能をテストする必要があるプロジェクトに取り組んでいます。入力パラメータをデータベース パッケージに提供し、パッケージが期待値を返すかどうかをテストする必要があります。また、リクエストの応答時間もテストしたいと考えています。
これを実行するために利用できるツールがある場合、または Junit またはその他のフレームワークでテスト ケースを記述できる場合は、アドバイスをお願いします。どちらが最善のアプローチになりますか?
私は現在、データベースのパッケージと機能をテストする必要があるプロジェクトに取り組んでいます。入力パラメータをデータベース パッケージに提供し、パッケージが期待値を返すかどうかをテストする必要があります。また、リクエストの応答時間もテストしたいと考えています。
これを実行するために利用できるツールがある場合、または Junit またはその他のフレームワークでテスト ケースを記述できる場合は、アドバイスをお願いします。どちらが最善のアプローチになりますか?
私のフレームワーク Acolyte は、そのような目的 (モックアップ、テストなど) のために設計された JDBC ドライバーとツールを提供します: http://tour.acolyte.eu.org
これは、いくつかのオープン ソース プロジェクト (Anorm、Youtube Vitess など) で、バニラ Java またはその Scala DSL を使用して既に使用されています。
handler = handleStatement.withQueryDetection(...).
withQueryHandler(/* which result for which query */).
withUpdateHandler(/* which result for which update */).
// Register prepared handler with expected ID 'my-unique-id'
acolyte.Driver.register("my-unique-id", handler);
// then ...
Connection con = DriverManager.getConnection(jdbcUrl);
// ... Connection |con| is managed through |handler|
DWH テストを行う必要があるときは、よりネイティブなアプローチを使用しました。既に配置されている開発データ統合フレームワークを中心にテスト フレームワークを配置しました。そのため、再利用可能なジョブ、構成、およびコードがたくさんありました。しかし、あなたが提案するようにOOPを使用する
Junitでテストケースを書く
も行く方法です。ただし、多くの場合、DWH の設計は非常に複雑であり (考慮すべき側面が多数あります)、永続層とのやり取りが常にテスト戦略の最適な候補であるとは限らないことに注意してください。より DB 指向のソリューション ( tSQLt など) は、優れたパフォーマンスを提供します。
これらのリソースは私を大いに助けてくれました: