2

だから私はリファクタリングしたいいくつかの挑戦的なコードを持っています。課題は、データベースクエリ、EJB、およびJavaserverFacesに依存することです。同時にではなく、それに近い。

良い例はジオコーダーです。入力および保存されたデータに応じて、DBへの複数のクエリに応じて意味のある結果を取得します。このコードは、他のヘルパークラスを参照し、JSFフレームワークを介してそれらを検索する場合もあります。

この種のコードをテストするための最良の戦略は何ですか?コードを可能な限り分離する必要がありますか?代わりにモックを使用する必要がありますか?他の人のために何が働いたのですか?

4

1 に答える 1

4

簡単に言えば、「はい」です。

まず、ユニットテストを構築するためにコードを十分に因数分解する必要があります。あなたが説明していることは、通常の単体テスト方法を適用するには非常に複雑であり、どのような場合でも得られるものは、より高いレベルの受け入れテストのようなものです。

さて、その因数分解に関する限り、いくつかの可能なアプローチがあり、おそらくそれらすべてを使用するでしょう。

  1. 外部スクリプトを使用して、データベースクエリ自体をテストします。

  2. 既知の結果に対して何が起こるかを確認するために、DBに直接アクセスするコンポーネントの適切なモックを作成します。

  3. 機能ユニットのフレームワークのようなJUnitを使用してユニットテストを構築します。

  4. 最新技術を調べて、出力HTMLを単体テストに対して有効にテストできるかどうかを確認します。

于 2011-10-03T05:06:29.970 に答える