我有一个类将两个数相除。当数字除以0时,它会抛出ArithmeticException。但是当我单元测试这个时,在控制台上它显示抛出了ArithmeticException,但是我的测试失败并带有AssertionError。我想知道是否有办法证明它在Junit中抛出ArithmeticException?
Example.java在没有可吞噬块的Junit中捕获抛出的异常
public class Example {
public static void main(String[] args)
{
Example ex = new Example();
ex.divide(10, 0);
}
public String divide(int a, int b){
int x = 0;
try{
x = a/b;
}
catch(ArithmeticException e){
System.out.println("Caught Arithmetic Exception!");
}
catch(Throwable t){
System.out.println("Caught a Different Exception!");
}
return "Result: "+x;
}
}
ExampleTest.java
public class ExampleTest {
@Test(expected=ArithmeticException.class)
public void divideTest()
{
Example ex = new Example();
ex.divide(10, 0);
}
}
我实际的代码是不同的,因为这有很大的依赖性,我simpflied我的要求,这个例子测试。请建议。
我不明白你说的是什么。你能给我一个例子代码。 – devlperMoose
@pavanbairu我已经添加了一个重构示例。 –
这有帮助。谢谢:-) – devlperMoose