2016-11-21 14 views
0

JPA(およびJSF)を使用してGlassfishで実行されているWebアプリケーションでのテストデータの作成に関する質問があります。JPAプロジェクトでのデータ作成のテスト

私は通常、いくつかの基本的なテストデータベース環境を生成するTestDataCreatorのようなクラスを作成します。このクラスは、mainメソッドのように含まれています

public static void main(String[] args) { 
    createSomeUsers(); 
    createSomeStockItems(); 
    putSomeItemsIntoBaskets(); 
    // ... 
} 

とtheeseの各メソッドは、単にデータベースにいくつかのエンティティを挿入します。

データベース接続に古いJDBCを使用していましたが、これは問題なく動作しました。しかし、今、私はGlassfishとJPAの内部にアプリを実装しています。ですから、Glassfishはデータベース接続を行う人です。

私の質問は、 - どのように(正しく)このクラスを再度動作させるために修正するかです。 TestDataCreatorのメソッドを呼び出す "データベースの作成"ボタンでウェブサイトを作成するよりも良い方法ですか?

また、このクラスはsrc/test/javaに保存することをお勧めしますが、「ウェブサイト」ソリューションはクラスをsrc/main/javaに配置します。そして、これは - 私を正しければ、正しくない - 悪臭を放つ。あなたは私がそうさせた場合の助言

答えて

0

おかげでまあ、私は、質問の半分に答えることができます。

ボタンでWebサイトを作成するよりも良い方法はありますか? TestDataCreatorのメソッドを呼び出す「データベースを作成する」ですか?

はい、あります。私が気に入っているオプションは、作業中の環境(開発者、テスト、ステージ、プロダクションなど)全体で、テーブルのすべての変更とraw insertを簡単に再現できる、Flywayソリューションです。しかし、他の選択肢もあります.JPAだけを使ってこのようにするのと同じように、このarticleに記述されています。

はまた、私はSRC /テスト/ Javaでこのクラスを保存することを好むが、「ウェブサイト」 ソリューションは、SRC /メイン/ javaのにクラスを入れてしまいます。そして、これ - 私を訂正してください、 もしそうでなければ - 悪臭。

はい、理想的な世界では、テストファイルを "src/test/java"ディレクトリに入れてJUnitを使用したテストを行います。データソースの接続設定がグラスフィッシュにどのように行われているかわからないので、これを手伝ってはいけません。しかし、このstackoverflow answerを見てみると、何とかあなたに役立つかもしれません。

関連する問題