みんな私はJUnitテストに不慣れで、それをしっかりと把握しようとしています。現在、負のint値を読み取ってグラフを作成するとIllegalArgumentExceptionをスローするコンストラクター(有向グラフを作成するDigraphクラス用)のJUnitテストを作成していますすべてが問題ない場合 (ノード値の数) は 0 より大きくなります。
ダイグラフ クラス:
In in = new In();
public Digraph(In in) {
try {
this.nodes = in.readInt();
System.out.println("Total nodes in graph: "+ nodes);
if (nodes < 0) throw new IllegalArgumentException("Number of vertices must be > 0);
int E = in.readInt();
if (E < 0) throw new IllegalArgumentException("Number of edges must be >0);
}catch (NoSuchElementException e) {
throw new InputMismatchException("Invalid input format in Digraph constructor");
}
以下は、私が書こうとしているテストです。
@Rule
public ExpectedException exception = ExpectedException.none();
@Test(expected = IllegalArgumentException.class)
public void DigraphIn() {
Digraph G = new Digraph(in.readInt());
exception.expect(IllegalArgumentException.class);
exception.expectMessage("Vertices can't be nagative");
exception.expectMessage("Invalid input format in Digraph constructor");
exception.expectMessage("Number of edges in a Digraph must be nonnegative");
try{
}catch (AssertionError e){
}
}
1 つ (または 2 つ) のテスト ケースを使用して両方のケースをテストするにはどうすればよいですか? "in" で -ve 値が検出されない場合は、java.lang.AssertionError を取得します。それ以外の場合はテストに合格します。前もって感謝します