java - 对象创建或简单表达式求值哪个更好?

标签 java junit

一些背景知识,我遇到了无法启用断言的情况(询问 here )并使用像 forceassertions 这样的好解决方案因为 this 对我来说不可能.

在开发和测试阶段,断言一直是我们的强大武器,我们不准备放弃它。

既然如此,我想到了 2 个选项。 第一个,很像 JUnit 的 Assert 类:

Assert.assertTrue(result.financialInfoDTO.getPeriods().size() <= FinancialInfoConstants.NUMBER_OF_VISIBLE_PERIOD);

第二,尝试模仿 Java 的 native assert 关键字行为,我们可以在其中启用或禁用它:

    Assert.assert(new Assertion() {
       public boolean doAssert() { return result.financialInfoDTO.getPeriods().size() <= FinancialInfoConstants.NUMBER_OF_VISIBLE_PERIOD; }
    });

我想奢侈地启用和禁用断言功能,我能想到的唯一解决方案就是后者。我要问的是,鉴于大多数断言是比较集合的大小和比较某种类型的值,我们最好使用第一个选项还是后一个选项?

放在更技术化的语境下,哪个效率更高?一直在评估简单表达式或在堆中创建新对象?

最佳答案

对象实例化通常更昂贵。您可以自己进行基准测试。

关于java - 对象创建或简单表达式求值哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7802123/

相关文章:

java - 如何为我的应用程序创建数据文件夹?

java - Kotlin 中检查两个数组中的值是否差异不大的最有效方法是什么?

java - 下面的决策表可能有什么问题?

java - Spring Boot MVC 测试 - MockMvc 始终为空

java - "return name;"和 "return this.name"有什么区别

java - 停止 JUNit 记录

Java 将字符串转换为 Unicode 字符。 "U+1F600"= 😀

java - SpringJUnit4ClassRunner : run test method multiple times with different input data

java - 如何对读取属性文件的类进行单元测试

java - 我的 Android 应用程序无法在设备上运行