我想知道为什么不推荐使用assertEquals(double,double)
。
我使用了导入静态组织。朱尼特。明确肯定资产质量 我使用了JUnit 4.11。
下面是我的代码:
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class AccountTest {
@Test
public void test() {
Account checking = new Account(Account.CHECKING);
checking.deposit(1000.0);
checking.withdraw(100.0);
assertEquals(900.0, checking.getBalance());
}
}
checking.getBalance()
返回一个双倍值。
有什么可能是错的?
assertEquals(double,double)
不推荐使用,因为两个double可能相同,但如果它们是计算值,处理器可能会使它们的值略有不同。
如果您尝试这样做,它将失败:assertEquals(.1 .7, .8)
。这是使用Intel®处理器测试的。
调用弃用的方法将触发失败("使用assertEquals(预期、实际、增量)比较浮点数");
被调用。
人们解释但不提供样品。。。以下是对我有用的东西:
@Test
public void WhenMakingDepositAccountBalanceIncreases() {
Account account = new Account();
account.makeDeposit(10.0);
assertEquals("Account balance was not correct.", 10.0, account.getBalance(), 0);
}
最后是0
;
由于双精度的问题,它被弃用。
如果您注意到,还有另一种方法assertEquals(双预期、双实际、双增量)
允许delta
精度损失。
JavaDoc:
断言两个double在正增量内等于。如果不是,则抛出断言错误。如果预期值为无穷大,则忽略增量值。NaN被认为是相等的:assertEquals(Double.NaN,Double.NaN,*)
passes
...
增量-预期和实际之间的最大增量,两个数字仍然被认为是相等的。
问题内容: 我想知道为什么不推荐使用。 我曾经使用过JUnit 4.11。 下面是我的代码: 返回一个双精度值。 有什么事吗 问题答案: 由于double的精度问题而已弃用。 如果您注意到,还有另一种允许精度损失的方法。 JavaDoc: 断言两个双打等于正增量内。如果不是,则会引发AssertionError。如果期望值是无穷大,则将忽略增量值.NaN被视为相等:通过 … delta-期望值与实
为什么在JUnit5中不再推荐assertEquals(double,double)?
问题内容: 我进行了一个junit测试,使用以下命令声明了两个Double对象: 很好,然后我决定将其更改为使用原始double,除非您也提供了增量,否则该结果被弃用了。 所以我想知道在assertEquals中使用Double对象还是原始类型有什么区别?为什么不使用不带增量的对象,但不推荐使用不带增量的基元呢?Java是否在后台执行了已经考虑了默认增量值的操作? 谢谢。 问题答案: 没有断言方法
问题内容: 众所周知,Java 中的接口已损坏。造成这种情况的原因很多,我将不再赘述。其他人已经做到了。这也是Java架构师本身的立场。 因此,我的问题是:为什么还不被弃用?如果核心Java团队已确定它已损坏,那么他们还必须考虑过时。他们反对这样做的原因是什么(在Java 8中仍不建议弃用)? 问题答案: 有一个错误在1997年提交给Java的错误数据库有关添加方法,所以将不再是无用的。它以“无法
问题内容: 我曾经在hibernate 3中使用getHibernateTemplate(),现在我转向了Hibernate 4,在这里我找不到以下类: 在这里我已经阅读过有关它的更多信息,不建议使用 http://forum.springsource.org/showthread.php?117227-Missing-Hibernate- Classes-Interfaces-in-spring
问题内容: 我正在将hibernate项目配置为使用第二级缓存提供程序,以便可以利用查询缓存。 我向ehcache添加了一个依赖项: 我认为我要使用的提供程序类是: 在eclipse中查看引用的库时,我在和上都看到了注释。是什么赋予了?我可以使用最新的替代供应商吗? 我正在使用hibernate版本3.4.0.GA,以防万一。 问题答案: 是什么赋予了?我可以使用最新的替代供应商吗? 不推荐使用它