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

时间:2019-03-09 14:21:06

标签: java junit

Junit中代码之间的区别是什么

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

以及这些:

class MethodsTest {

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

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

2 个答案:

答案 0 :(得分:0)

在第一个版本中,您希望正在使用的特定测试运行程序在执行特定测试时隐式创建MethodsTest的新实例,从而创建Methods的新实例。在第二个版本中,您要告诉测试跑步者在执行新测试时明确使用其创建Methods的新实例。

答案 1 :(得分:0)

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

如果要扩展while True: x = input("Type anything") if x == '': break if x not in random_list: random_list.append(x) 类,则可以覆盖MethodsTest方法,并且覆盖方法不一定必须直接初始化字段,或者不一定要通过调用init()来间接初始化字段;否则它的初始化方式可能不同。

就个人而言,我希望第一个。它更简洁,不可重写,即使没有JUnit专门知识,它的语义对于熟悉Java的任何人来说都是显而易见的。