Festを使用した複数のJunitテスト
質問
Java Swing GUIをテストするためにいくつかのJunitテスト方法を書きました(使用 祭り)。私のクラスは次の形式です。
public class Tests
{
@BeforeClass
public static void beforeClass() throws Exception { ... }
@Before
public void before() throws Exception { ... }
@After
public void after() throws Exception { ... }
@AfterClass
public static void afterClass() throws Exception { ... }
@Test
public void testA() { ... }
@Test
public void testB() { ... }
@Test
public void testC() { ... }
}
このクラスをEclipseで実行すると、TestBまたはtestCではなくTESTAテストのみを実行します。 Testaをコメントすると、TestBが実行されます。そのため、毎回最初のテストを実行するだけです。
EclipseのJunitは、最初のテストを完了した後、「実行:2/3」を示しますが、それ以上進行したり、エラーを示したりしません。
私が間違っていることはありますか? Junit 4.8.1とFest 1.2を使用しています。
解決
副作用があるのではないかと思います testA
それはコードをブロックしています testB
ランニングから。詳細がなければ何が起こっているのかを言うのは難しい testA
と testB
, 、しかし、私はあなたにいくつかの一般的なガイダンスを与えることができます。
あなたはコメントアウトすることによって良いスタートを切ります testA
. 。これを行うときは、両方をします testB
と testC
走る?
掘り下げてみてください testA
そしてその下にあるものの詳細をゆっくりとコメントします testA
テストが両方を実行するまで testA
と testB
. 。これをやったら、少なくとも知っています どこ 問題は。
たとえば、コードが次のように見える場合:
public void testA() {
doX();
doY();
doZ();
// Assert stuff
...
}
その後すべてコメントしてください doX()
そして、何が起こるか見てみましょう。それが機能する場合、それから外れてください doY()
そして、何が起こるか見てみましょう。うまくいかなかった場合は、掘り下げてください doX()
コメントを始めて、再度テストを再実行し始めます。
これは、物事がどこで間違っているのかの詳細を特定するのに役立つはずです。これを理解したときにまだ困惑している場合は、戻って、それらの詳細について質問してください。
あなたのバグを見つけてください!
他のヒント
コードスニペットは大丈夫です。
各@Testメソッドがあるかどうかを確認できます 独立 他の人にとって、各テスト方法は同じコンテキストを共有してはなりません。確認 @Before
と @After
正しい行動をとる。