首页 > 解决方案 > JUnit 中这两个版本的代码有什么区别?

问题描述

Junit中的代码有什么区别:

class MethodsTest {
    Methods methods = new Methods();
}

还有这些:

class MethodsTest {

    Methods methods;
    @BeforeEach
    void init() {
        methods = new Methods();
    }
}

何时使用第一个代码,何时使用第二个代码?

标签: javajunit

解决方案


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

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

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


推荐阅读