java - JUnit 中这两个版本的代码有什么区别?
问题描述
Junit中的代码有什么区别:
class MethodsTest {
Methods methods = new Methods();
}
还有这些:
class MethodsTest {
Methods methods;
@BeforeEach
void init() {
methods = new Methods();
}
}
何时使用第一个代码,何时使用第二个代码?
解决方案
如果不涉及继承,则没有区别。
如果要扩展MethodsTest
类,则可以覆盖该init()
方法,并且覆盖方法不一定直接初始化字段,或者可能通过调用间接初始化super.init()
; 或者它可以以不同的方式初始化它。
就个人而言,我更喜欢第一个。它更简洁,不可覆盖,而且它的语义对于任何熟悉 Java 的人来说都是显而易见的,即使没有特定于 JUnit 的知识。
推荐阅读
- ruby-on-rails - ActiveStorage 如何防止重复文件上传;按文件名查找
- javascript - 如何修复导航栏内的下拉按钮 - 引导程序?
- git - 来自多个子目录的 .gitignore 文件
- android-studio - 如何减少 Android Studio 3.3 中原生库的构建变体?
- java - Firebase 数据库检查密钥是否存在
- javascript - 使用动态 javascript 变量名访问“变量”环境变量
- ruby-on-rails - Rails 的 HTML slim 电子邮件模板
- google-api - Google Api + 下载群组的所有电子邮件标头
- reactjs - 反应 setstate 后未呈现的本机数据
- css - 如何使用CSS在悬停时缩放图像