質問

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 ランニングから。詳細がなければ何が起こっているのかを言うのは難しい testAtestB, 、しかし、私はあなたにいくつかの一般的なガイダンスを与えることができます。

あなたはコメントアウトすることによって良いスタートを切ります testA. 。これを行うときは、両方をします testBtestC 走る?

掘り下げてみてください testA そしてその下にあるものの詳細をゆっくりとコメントします testA テストが両方を実行するまで testAtestB. 。これをやったら、少なくとも知っています どこ 問題は。

たとえば、コードが次のように見える場合:

public void testA() {
    doX();
    doY();
    doZ();
    // Assert stuff
    ...
 }

その後すべてコメントしてください doX() そして、何が起こるか見てみましょう。それが機能する場合、それから外れてください doY() そして、何が起こるか見てみましょう。うまくいかなかった場合は、掘り下げてください doX() コメントを始めて、再度テストを再実行し始めます。

これは、物事がどこで間違っているのかの詳細を特定するのに役立つはずです。これを理解したときにまだ困惑している場合は、戻って、それらの詳細について質問してください。

あなたのバグを見つけてください!

他のヒント

コードスニペットは大丈夫です。

各@Testメソッドがあるかどうかを確認できます 独立 他の人にとって、各テスト方法は同じコンテキストを共有してはなりません。確認 @Before@After 正しい行動をとる。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top