2017-01-04 3 views
0

私はストリームの位置をリセットするためにすべてのテストの最後に呼び出すメソッドを持っています。Junit - 各テストの終わりにメソッド

Test{ 
[....] 
reset(); 
} 

このような繰り返しを回避する方法はありますか。

+0

setUp()またはtearDown()について聞いたことがありますか? @Beforeと@After? – logger

+0

はい、私はセットアップを使用しますが、私はこの場合にどのように使用するか分かりません。テストが実行されるたびにセットアップが呼び出されますか? – user3727540

答えて

4

@After JUnitに付随するアノテーションを試してください。ソースから 例:

public class Example { 
    File output; 
    @Before public void createOutputFile() { 
      output= new File(...); 
    } 
    @Test public void something() { 
      ... 
    } 
    @After public void deleteOutputFile() { 
      output.delete(); 
    } 
} 
0

はい、@After注釈で新しいメソッドを作成します。

0

あなたは@Afterアノテーションを使用する必要があります - 何かが各メソッドの実行の最後に行われる必要がある示しています。

1

その他の回答は、技術的に適切であり、あなたの質問に対する良い答えである公開方法(好ましくは名前はteardown)で@After注釈を示唆しています。

しかし、unittestsの本質的な性質は、それらが互いに迅速で独立している必要があるということです。

したがって、より良い方法は、すべてのテストでストリームの新しいモックを使用することです。これは、Mockito、JMockなどの模擬フレームワークを使用することで最も効果的です。

0

@After注釈を使用してください。 BeforeAfter:他の人が指摘したように

@Test 
public void testSomething() { 
    // test goes here 
} 

@After 
public void doSomethingAfterTest() { 
    // reset 
} 
0

、@sがあります。これらのアノテーションを持つクラスインスタンスメソッドは、すべてのテストケースの前後に実行されます。

BeforeClassAfterClassもありますが、まだ誰も指摘していません。これらの@はクラスの静的メソッドに置くことができ、クラス内のテストのがすべて完了した後、これらのメソッドはの前後に実行されます。特定の状況では便利です。

関連する問題