2017-08-30 15 views
0

機能テストを行うには、偽のアプリケーションを実行する必要があります。すべてのテストを独立させるために、偽のアプリケーションは、テストが設定されるたびにきれいなデータベースを使用する必要があります。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用です。

答えて

0

ドキュメントhttps://www.playframework.com/documentation/2.5.x/JavaTestingWithDatabasesから何か助けを得ることができます。

+0

私もそれを試しましたが、データベースに接続できませんでした。私はapp = fakeApplication(ImmutableMap.of( "db.default.url"、database.getUrl()、 "db.default.driver"、 "org.h2.Driver"、 "db.default.username"、 " 、 "db.default.password"、 "")); SQL文の構文エラー "[*]#"でクラッシュするため、ドキュメントで提供されているコードがMYSQLに設定されていません。 –

関連する問題