1

私のSpring Webプロジェクトは次のもので構成されています。

  1. ユーティリティ クラス;
  2. リポジトリ;
  3. サービス;
  4. コントローラー。

テストは次のとおりです。

  1. ユーティリティ クラスの単体テスト。
  2. HSQLDB を使用したリポジトリの春の統合テスト。
  3. モック リポジトリを使用したサービスの単体テスト。
  4. モック サービスを使用したコントローラーの単体テスト。

プロジェクト全体の機能をテストするシステム テストもある場合があります。Selenium などの外部ツールを使用して実行するか、Spring 統合テストを使用して実行できます。

問題は、そのような春の統合システム テストをプロジェクトに含める必要があるか、それとも何らかの方法で分離する必要があるかです。

プロジェクトにシステム テストを含めることに関して、次の 2 つの問題があります。2. それらは自律的ではなく、外部リソースなどが必要です。通常の単体テストのように実行することはできません。

システムテストをどのように構成していますか?

4

1 に答える 1

1

小さなプロジェクトでは、それらを同じ場所に保管しました。大規模なエンタープライズ プロジェクト (たとえば、Spring を有効に活用できるようなプロジェクト) では、通常、システム テストを別のパッケージ/プロジェクトにまとめました。これにより、それらをメインのコードベースから分離しておくことができます。

これを行わないと、コードからクラスを再利用して、システムのユーザーのエクスペリエンスにもっと重点を置く必要がある何かを「助ける」というあらゆる種類の誘惑があります (ユーザーは別のシステムである可能性があります)。これが発生すると、プロジェクト ドメイン クラスと UI の間の結合が発生し、実際のコードベースでそれらを分離しておくのに役立つロジックの多くを複製する必要があるという必然的な影響が生じます。

ほとんどの場合、システム シナリオのロジックは実際にはページ、画面、Web 呼び出しなどに焦点を当てているため、メイン プロジェクトのコードを再利用するのは危険です。このようなことが起こらないように、パッケージを別々に保管してください。これが起こらないようにすれば、パッケージを同じ場所に置く必要がなくなるからです。

ただし、システム テストがコードと同じバージョン管理にチェックインされていることを確認してください。

継続的インテグレーションとテスト/展開をまだ行っていない場合は、構成ファイルの学習に役立つ別の領域になる可能性があります。残念ながら、別のプロジェクトにテストがあるからといって、その問題が解決するわけではありません。

于 2011-02-17T14:03:59.180 に答える