小编Aet*_*ite的帖子

将 Boolean.TRUE/Boolean.FALSE 或 true/false 分配给布尔原始变量是否更好?

在进行一些代码审查时,我偶然发现了这一点:

人们通常为一个装箱的布尔变量赋值Boolean.TRUEBoolean.FALSE赋值,但对原始变量使用true/ false。最好的方法是什么?

根据我合作过的一位架构师的说法 - 他说每次你将true/分配false给一个变量时,都会创建一个新的 Boolean 实例。如果我们将布尔变量分配给静态实例 - Boolean.FALSE/ ,我们可以跳过它Boolean.TRUE。如果变量是原始变量,则完成自动拆箱。

自动拆箱是否比布尔变量的初始化更快?差异不大,我认为这只是对代码的微优化,但我想了解更多。

java

4
推荐指数
1
解决办法
185
查看次数

使用 Junit5 的 spock 单元测试中不考虑 @Rule 注释

我正在尝试迁移我的项目以使用 Junit5。到目前为止,我一直在使用“LogSpy”类,它基本上拦截并保存所有日志,以便可以轻松测试它们。使用 Junit4 和 Spock 测试,我能够使用 @Rule 注释来初始化我的日志拦截器类(即使它是在 Spock 测试中)。迁移到 Junit5 后,此注释似乎没有初始化所需的日志拦截器类,我找不到原因。为什么会发生这种情况?Junit4 和 5 在 @Rule 注释方面有什么区别?有办法解决这个问题吗?

这就是我初始化 LogSpy 类的方式。它在 JUnit 单元测试中初始化,但不在 Spock 测试中初始化。

@Rule
public LogSpy logSpy = new LogSpy()
Run Code Online (Sandbox Code Playgroud)

java junit unit-testing spock junit5

4
推荐指数
1
解决办法
638
查看次数

标签 统计

java ×2

junit ×1

junit5 ×1

spock ×1

unit-testing ×1