機能テストを行うには、偽のアプリケーションを実行する必要があります。すべてのテストを独立させるために、偽のアプリケーションは、テストが設定されるたびにきれいなデータベースを使用する必要があります。java play 2.5でinememoryデータベースを使ってfakeapplicationを作成するにはどうすればよいですか?
@Before
public void before() {
app = fakeApplication(inMemoryDatabase());
start(app);
initializeData();
}
@After
public void after() {
stop(app);
}
これに伴う問題は、それが通常のデータベース以来、MYSQLにMODEを設定していないということです。そうするためには、私は理想的な方法は、このようなインメモリデータベースを使用することを文書で発見しましたMYSQLデータベースです。このモードを設定するには、オプションを追加する必要があります。これは、以下のコードを使用して行われます。 「テスト」はデータベースの名前です(混乱を避けるために「デフォルト」とは異なります)。
app =fakeApplication(inMemoryDatabase("test", ImmutableMap.of("MODE", "MYSQL")));
しかし、このコードは奇妙なものを行います。それはそれでは、私は次のようにコードを変更しapplication.confに構成された(でも、インメモリデータベースではありません)デフォルトのデータベースを使用しています。
app =fakeApplication(inMemoryDatabase("default", ImmutableMap.of("MODE", "MYSQL")));
しかし、これは何もしません:それはまだMODE MYSQLが設定されていないと言います。
誰かが私を助けることができますか?
フレームワークjava play 2.5用です。
私もそれを試しましたが、データベースに接続できませんでした。私はapp = fakeApplication(ImmutableMap.of( "db.default.url"、database.getUrl()、 "db.default.driver"、 "org.h2.Driver"、 "db.default.username"、 " 、 "db.default.password"、 "")); SQL文の構文エラー "[*]#"でクラッシュするため、ドキュメントで提供されているコードがMYSQLに設定されていません。 –