1

MyListのaddメソッドが1つの引数を取り、引数としてnullが指定された場合にNullPointerExceptionをスローするように指定されているとします。このJUnitテストメソッドを完了して、addメソッドの機能をテストします。

    public void testAddNull() {
    MyList<String> ls = new MyList<String>();

    }

これが答えです:

    public void testAddNull() {
    MyList<String> ls = new MyList<String>();
      try {
        ls.add(null);
        fail();
        } catch (NullPointerException e) {
      }
    }

なぜ正確にfail(); ここで必要なのは、ls.add(null)によって失敗することはないので、fail()を配置しないことです。ここで冗長ですか?

4

1 に答える 1

4

がをスローls.add(null);しない場合、上記のテスト メソッドは失敗します。望ましい動作は例外をスローすることなので、例外が でキャッチされるとテストはパスします。NullPointerExceptioncatch (NullPointerException e)

Junit 4 では、次のこともできます。

@Test(expected = NullPointerException.class)
public void testAddNull() {
    ls.add(null);
}

これには、テストされたコードが をスローする必要がありますNullPointerException。そうしないと、テストが失敗します。

于 2012-12-10T07:04:39.083 に答える