0

私たちのデータベースはpostgresqlです。JPA を使用して永続化タスクを管理します。現在、テストを実行するには postgres サーバーが必要です。これにより、開発ボックスでテストを実行するのが面倒になります。開発者は最初に postgres サーバーをインストールする必要があり、CI からリリース ビルド環境まで、さまざまなビルド サーバー環境への移植性が難しくなります。

軽量のインメモリバージョンに重い重量のdbサーバーを切り替えることができるはずだと私には思えます。Postgres固有のことはしません。私たちのコードはほとんど純粋な JPA であり、Hibernate 固有の機能に少しアクセスしています。

4

2 に答える 2

1

単体テストに必要なコードにデータベースを依存性注入できます。コードに注入が困難な postgressql への依存関係が既にある場合は、PowerMockを使用して、制御する偽物を返すために呼び出す静的メソッドまたはコンストラクター メソッドを置き換えることができます。

返される偽のデータベースは、テストする必要がある内容に応じて、事前設定された値を持つハッシュテーブルのように単純なものにすることができます。

于 2012-07-13T15:24:22.073 に答える
0

あなたには2つの可能性があります。分離された postgres データベースをセットアップし、CI コードをそれに接続させることができます。ただし、多くの場合、必要ありません。データベース コードで postgres 固有の機能をあまり使用していない場合は、他のインメモリ データベースの使用を検討してください。例えば。h2 または hsqldb。必要に応じて、コードを少し変更して移植性を高めることもできます。2 番目のオプションはもちろん、コードがメモリ内データベースでは機能するが、postgres では機能しない可能性が常にあるため、もう少しリスクが高くなります。ただし、最初のオプションでは、もう少し管理とメンテナンスが必要になる場合があります。

于 2012-07-13T15:50:22.723 に答える