2016-10-18 8 views
0

Webアプリケーションについては、ほとんどのコードをResourcesクラスの中に記述しています。今度は、単純な統合テストでjunitテストを使用してWebモジュールを単体テストする必要があります。シードアプリケーションでは、アプリケーションサービスをWebモジュールにパッケージ化できますか?

ただし、この種のパッケージでは、ファインダやその他のビジネスロジックをテストすることはできません。

コードをリソースクラスから単体テストに注入できるアプリケーションサービスに移行する必要がありますか?はいの場合、これらのサービスをWebモジュールで記述できますか?通常、我々はこれらのサービスをアプリケーションモジュールに書いていますが、その場合、サービスはウェブに存在するファインダーにアクセスすることはできません

答えて

0

リソースクラスには、アプリケーションのREST APIを公開するために必要なコードアプリケーション(ユースケース)ロジック、データアクセスなし。リソースクラスはのみ、リポジトリ、サービス、ファインダなどの他のコンポーネントを使用して目的の結果を達成する必要があります。 SeedStackプロジェクトで

、あなたはビジネスのフレームワークを使用している場合は特に、それはあなたがDDD層モデルを尊重することをお勧めします。

  • 事業が発現される場合、ドメイン層は、ドメインオブジェクトを含む集約することで、 (エンティティと値オブジェクト)とドメインサービスによって定義されます。
  • アプリケーション層はアプリケーションのワークフローを推進し、アプリケーションサービスを通じてシステムのユースケースを実行します。この層は単体テストと簡単な積分テストによってテストすることもできます。
  • インターフェイスレイヤは、他のシステムとの対話を処理します。あなたの場合、これはRESTリソースで行われます。これらのリソースは、データベースを照会するために必要なときにファインダーに依存することができます。

ユニットテストとsimple integration testsでこれらのコンポーネントをテストできます。これらのコンポーネントは、Web実行環境に依存するため、RESTリソースを除いてテストできます。これらは、Web integration tests(Arquillianを使用)でしかテストできません。

ファインダの例は、簡単な統合テストherehereでテストできます。

関連する問題