java - 在junit测试中封装私有(private)成员变量

标签 java unit-testing junit

<分区>

我正在开发一个项目,其中 junit 测试的所有成员变量都声明为私有(private)包。

例如:

public class MyTest {

    MyObject someObject;

    @Before
    public void setUp() throws Exception {
        someObject = new MyObject();
    }
}

代替:

public class MyTest {

    private MyObject someObject;

    @Before
    public void setUp() throws Exception {
        someObject = new MyObject();
    }
}

我知道最初编写测试的人通常知识渊博,参加过很多 session ,读过很多书。所以我想知道他可能是从哪里学来的,这背后的理由是什么?

最佳答案

这可以像其他任何东西一样成为一种风格。有些人倾向于默认将事情设为私有(private),然后根据需要开放范围。可能他用的IDE默认是package private吧。真的很难回答为什么有人会那样做。

我会说在这种情况下,最好将其设为私有(private)。但如果没有看到其余代码,就很难说了。如果它是从其他地方使用的,那么您可能会考虑创建一个其他测试扩展的基本测试类以捕获一些通用功能。在那种情况下,您会给出一个名称来反射(reflect)它的用途。

关于java - 在junit测试中封装私有(private)成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14672371/

相关文章:

java - Spring:在 JUnit 测试中测试 JSP 输出

java - 我收到此异常 : Unresolved compilation problems

java - 使用 java.net.Authenticator 注销

Java - Google App Engine - 当我更改存储在 session 范围内的类时出现 InvalidClassException

unit-testing - SystemVerilog 程序 block 与传统测试平台

android - 单元测试中的 RxJava Schedules.io() NullPointerException

c# - Azure Functions V2 的单元测试 MessageSender

java - 按类级别强制执行最小 JUnit 总覆盖率?

java - JUnit 测试后清理数据库。

java - 检查 Cookie 状态并限制用户不浏览 Web 应用程序 - 如何操作?