- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在用JUnit练习,这是我想测试的简单方法
public float divide(int a, int b){
return (float)a/(float)b;
}
这是测试(Maths 只是我的一个包含该方法的自定义类):
@Test(expected = ArithmeticException.class )
public void divideByZeroShouldBeDetected(){
Maths m = new Maths();
m.divide(2,0);
}
无论如何运行这个测试都会导致失败...
编辑:好的,刚刚检查了一些“奇怪”的东西,这段代码实际上给了我异常(exception):
float c = 2/0;
不管怎样,这个:
m.divide(2,0);
给我
Infinity
这就是测试失败的原因。那么..如何在 Junit 中测试这种行为?
最佳答案
好的解决了....问题是关于参数的类型,在这篇文章中你可以找到完整的解释Java division by zero doesnt throw an ArithmeticException - why? .
为了进行测试,我只需要断言返回值是“无限”,这样:
@Test
public void divideByZeroShouldBeDetected(){
Maths m = new Maths(2, 0);
assertEquals("divide float by zero should be infinity", true, Float.isInfinite(m.divide()));
}
关于java - JUnit 不检测 ArithmeticException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25621946/
我已经为数据表实现了 LazyLoading。当我使用分页浏览数据表时,出现以下异常。 com.sun.faces.context.PartialViewContextImpl processPart
这个问题已经有答案了: Operator precedence in Java (3 个回答) 已关闭 4 年前。 当我尝试编写真值表时,我试图找出算法,然后我发现了一个可行的算法。但是现在我不明白为
该程序可以正确计算带分数。我希望 while 循环在输入两个零后终止。但是,当我输入由空格分隔的两个零时,我得到“Exception in thread "main"java.lang.Arithme
我有一个 JAVA(在 Android 上运行)方法,它偶尔会因被零除而捕获 ArithmeticException,尽管变量 inSampleSize 在循环之前设置为 1,并且每次只乘以 2。以下
我正在用 Java 做这个数独求解器,由于某种原因,我的代码中有一个我无法修复的错误。我的代码有一个 guess 函数,它在检查每个框中的 1-9 数字的同时检查数字是否已经写入。 错误在行中: e
这个问题在这里已经有了答案: try-catch for division by zero (7 个答案) 关闭 7 年前。 我一定是做了什么蠢事。但我似乎无法弄清楚为什么这个简单的代码不起作用。
我想使用标准的 java MonetaryConversions 来转换货币。 乍一看它工作得很好而且简单: @Test public void testConversion()
@Override public StreamObserver mdtDialout(StreamObserver responseObserver) { return new StreamO
我想修改ArithmeticException输出消息。因此,为此我做了一些实验。我通过 ExtenderClass 类扩展了 ArithmeticException 类。这个问题的重点不仅在于找到修
为什么这段代码不抛出ArithmeticException?看看: public class NewClass { public static void main(String[] args)
该方法的目的是迭代一个名为 grid[][] 的二维整数数组,并根据最大和最小值将整数转换为 100 到 250 之间的较小范围(原来的最小值变为 100 ,原来的最大值变成250,中间的一切都分别计
我在解决从 Student 类中的 getAverageScore() 方法中获取的 ArithmeticException 时遇到问题。我正在尝试编写一个程序来读取以下文本文件 scores.txt
我正在使用计算器并使用 NetBeans GUI 生成器,因此它可能有点不清楚和令人困惑。(完整代码 http://pastebin.com/ZLcM74ZQ ,因为它太长了) package rec
我正在研究一种算法来检查数字是否为质数,并且需要处理非常大的数字,因此我正在使用 BigInteger 类。问题是抛出此异常ArithmeticException BigInteger 会溢出支持的范
我正在用JUnit练习,这是我想测试的简单方法 public float divide(int a, int b){ return (float)a/(float)b; } 这是测试(Ma
我对整个捕获处理异常概念有点陌生,我想知道为什么抛出 ArithmeticException 不会在退出时产生异常错误消息(在本例中/为零),而是在编译期间产生异常错误消息。 不应该正常编译然后在屏幕
我们在客户机器上的以下行中得到一个ArithmeticException(算术运算中上溢或下溢。)。我们无法在任何 PC(客户或我们的)上复制它: var actualFullness = (byte
下面的代码执行时没有任何歧义的编译错误,输出是“ArithmeticException”。各位大侠能帮我看看原因吗。 class Test { public static void main(
我正在尝试在 Android 应用程序中实现 RSA 算法。我正在使用 java.math.BigInteger.modPow() 函数进行加密/解密,它适用于我的计算机(Windows 和 Xubu
这只发生在 x64 版本中 An unhandled exception of type 'System.ArithmeticException' occurred in WindowsBase.dl
我是一名优秀的程序员,十分优秀!