1

junit 4 の予想されるアノテーションを使用して例外を確認するのが困難です。未処理の例外があるため、コードをコンパイルできません。

状況を作成する簡単な例を次に示します。


import static org.junit.Assert.*;
import java.io.UnsupportedEncodingException;
import org.junit.Test;

public class Simple {
    @Test(expected=UnsupportedEncodingException.class)
    public void simpleTest(){
        String a = "";
        a.getBytes("UTF-123");
    }
}

「Unhandled exception type UnsupportedEncodingException」というコンパイル エラーが発生します。

これは理にかなっており、simpleTest が UnsupportedEncodingException をスローすることを宣言することでこれを修正できますが、人々がそれを行わない多くの例をオンラインで見てきました (これは、多くのテスト ケースを作成する場合に便利です)。

スローされる例外を明示的に宣言する必要がないように、テスト ケースを構成する方法はありますか?

4

1 に答える 1

2

私の知る限り、UnsupportedEncodingException はチェック例外です。そのため、コンパイラは、チェックされた例外に対して throws 句を期待します。ArithmeticException のような未チェックの例外を試した場合、コードは機能すると思います。

于 2012-11-01T21:30:57.580 に答える