gpt4 book ai didi

java - 如何测试非公共(public)类中的方法?我认为在公共(public)类中测试私有(private)或 protected 方法是不一样的

转载 作者:行者123 更新时间:2023-11-30 09:15:20 26 4
gpt4 key购买 nike

我的问题是关于在非公共(public)类中测试一个方法。我不是开发人员,而是单元测试人员。

我想我知道如何在公共(public)类中测试私有(private)和 protected 方法。反射(reflection)或编写自己的子类。

也许有什么方法可以测试非公共(public)类中的方法吗?有些类写成非公开的,可以测试吗?

前置条件:我无权在与测试类相同的包中编写测试类。

如有任何意见,我们将不胜感激。

代码:

package com.whoistester.a;
class a { // non-public class

public void methodA()
{
}

}

package com.whoistester.test
public class test {

public void testa()
{
// here how to test the method of the class a ???
}

}

解决方案:
我是多么笨啊,这很容易做到。不同的项目,但 junit 测试和测试代码都可以在同一个包中。 项目/src/main/com/tec/Util.java 测试项目/src/test/com/tec/UtilTest.java

最佳答案

不想在同一个包中编写测试类和测试类?

嗯,在我的项目中,我通常把测试类放在不同的物理目录下,但是和他们测试的类放在同一个包里,这也是Maven提倡的结构:

例如:

project/src/main/com/tec/Util.java

project/src/test/com/tec/UtilTest.java'

在此结构中组织测试代码允许测试代码访问包私有(private)字段。而且我可以很容易地单独编译和打包它,这样生产 jar 文件就不会包含测试代码。

希望对您有所帮助。

关于java - 如何测试非公共(public)类中的方法?我认为在公共(public)类中测试私有(private)或 protected 方法是不一样的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19970587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com