一些背景知识,我遇到了无法启用断言的情况(询问 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/