7

Junit 4 を使用しています。プログラム全体が正常に動作しています。テストケースを書こうとしています。でも一つだけ間違いが…

これは非常に基本的なサンプルテストです

public class di  extends TestCase{
    private static Records testRec;
    public void testAbc() {
        Assert.assertTrue(
            "There should be some thing.",
            di.testRec.getEmployee() > 0);
    }

}

これを実行すると、エラーが発生します

fName can not be null

スーパーを使用してこのようにすると

public TestA() {
super("testAbc");
}

それはすべてうまくいきます。以前は JUnit 3.X ではそうではありませんでしたが、私が間違っているのか、それとも変更されたのでしょうか :( 不明な場合は申し訳ありません

スーパーなしでテストを実行する方法はありますか? または呼び出し関数など?

4

2 に答える 2

16

JUnit 4 では extends する必要はなくTestCase、代わりに@Testアノテーションを使用してテスト メソッドをマークします。

public class MyTest {
    private static Records testRec;
    @Test
    public void testAbc() {
        Assert.assertTrue(
            "There should be some thing.",
            MyTest.testRec.getEmployee() > 0);
    }
}

補足として、staticクラスのメンバーをテストすると、単体テストが相互に依存する可能性があり、これは良いことではありません。よほどの理由がない限り、static修飾子を削除することをお勧めします。

于 2010-03-21T16:34:48.357 に答える
0

これはあなたのケースではありませんが、このエラーは、プロジェクトに名前の付いたファイルがあることを意味する場合もありますTest.java。名前を変更するとエラーは修正されますが、リファクタリング後に(少なくとも Eclipse では) に@Test変更されるため、手動で に戻すことを忘れないでください。@NewName@Test

于 2016-11-29T09:57:39.647 に答える