2016-07-24 4 views
0

は、私は次の簡単なコードがあるとしなぜテストメソッドだけでなく、テストでsetUpとtearDownを使用する必要がありますか?完全に従来の方法は、以下の作業をテストするために</p>今 <pre><code>public class SimpleOperations { public int square(int x){ return x*x; } } </code></pre> <p>:

public class Jtest { 
    @Test 
    public void test() { 
     SimpleOperations test = new SimpleOperations(); 
     int output = test.square(5); 
     assertEquals(25, output);  
    } 
} 

はなぜ確立とティアダウンメソッドを追加する必要があるでしょうか?そのようなコードを実行すると、メソッドが正しいかどうかが示されます。 setUp/tearDownメソッドがテストに追加する利点は何ですか?そして、彼らはここのようにすべきでしょうか?

答えて

0

厳密にsetUpとtearDownメソッドを追加する必要はありませんが、ソフトウェア開発の「自分自身を繰り返さない(DRY)」の原則に従うのが一般的です。

setUpメソッドとtearDownメソッドを使用してテストを分離しないようにして、セットアップによって初期化された余分な変数やオブジェクトが現在のテストに干渉しないようにする人もいます。

基本的な例として、私はsetUpとtearDownメソッドを追加することに利点はありません。

0

注意:これはやや長い答えです。私はそれをできるだけ簡潔に保つように努めます。

あなたが示したような簡単な例では、テストのセットアップや分解が必要ありません。

ただし、一連の依存関係を持つ複雑なサービスをテストしている場合は、セットアップメソッドを使用してテストに必要なオブジェクトを設定したいと考えています。これには、サービスのメソッドの呼び出しが失敗しないように、依存関係をモックすることが含まれます。障害テストケースは、故障ケースをテストするためにモックを変更するだけです。

破損が発生すると、テストで作成された成果物がクリアされ、次のテストが以前のテストで残されたことによる干渉を受けることなく動作するようになります。テストの実行の一部として追加されたテスト(インメモリ)データベース内のレコードをクリアするか、テストケース自体によってクリアされると考えてください。

関連する問題

 関連する問題