为了账号安全,请及时绑定邮箱和手机立即绑定

JUnit 中这两个版本的代码有什么区别?

JUnit 中这两个版本的代码有什么区别?

智慧大石 2022-07-27 20:01:12
Junit中的代码有什么区别:class MethodsTest {    Methods methods = new Methods();}还有这些:class MethodsTest {    Methods methods;    @BeforeEach    void init() {        methods = new Methods();    }}何时使用第一个代码,何时使用第二个代码?
查看完整描述

2 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

如果不涉及继承,则没有区别。

如果要扩展MethodsTest类,则可以覆盖该init()方法,并且覆盖方法不一定直接初始化字段,或者可能通过调用间接初始化super.init(); 或者它可以以不同的方式初始化它。

就个人而言,我更喜欢第一个。它更简洁,不可覆盖,而且它的语义对于任何熟悉 Java 的人来说都是显而易见的,即使没有特定于 JUnit 的知识。


查看完整回答
反对 回复 2022-07-27
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

在第一个版本中,您希望您正在使用的特定测试运行程序在执行特定测试时创建一个MethodsTest隐式创建新实例的新实例Methods。在第二个版本中,您告诉测试运行器您Methods在执行新测试时显式使用创建一个新实例。



查看完整回答
反对 回复 2022-07-27
  • 2 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信