私は単体テストに慣れていて、JUnitを学びたいと思っています。私のプロジェクトでは、テストでの例外の処理が機能していません。ここに私のクラスには、次のとおりです。JUnit例外処理が動作しない
public class Things {
private int amount;
private int[] weights;
private int[] values;
public Things(int amount, int[] weights, int[] values){
this.amount = amount;
if (amount!=weights.length || amount != values.length){
throw new IllegalArgumentException("Amount of things different than weights or values length");
}
this.weights=weights;
this.values=values;
}
}
とテストクラス:
public class ThingsTest {
@Test
public void testThingsConstructorIllegalArgumentsException(){
boolean exceptionThrown = false;
try{
Things thingsBadParams = new Things(5, new int[]{4,3,2}, new int[]{7,8});
}
catch (IllegalArgumentException e){
exceptionThrown = true;
}
Assert.assertTrue(exceptionThrown);
}
}
私は多分、これは例外を処理するための最良の方法ではないことを知っているが、それはポイントではありません。私はおそらく@Rule、@Test(予想= IllegalArgumentException.classとすべてのソリューションを()試してもテストが失敗するたびに、その下の赤いバーと説明があります:
java.lang.IllegalArgumentException: Amount of things different than weights or values length
at pl.dsdev.Things.<init>(Things.java:14)
at ThingsTest.<init>(ThingsTest.java:11)
私はIntelliJのアイデア2017、MavenとJUnitの4.12を使用して、私はテストを成功させるために何をすべき
ありがとうスタックトレースはあなたが投稿コードを実行していないことを示しています。例外は、ThingsTestコンストラクターからスローされます。投稿されたコードにはコンストラクタはありません。 **実際の**コード –