如何在非公开类中测试方法?我认为在公共类中测试私有或受保护的方法并不相同



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

我想我知道如何在公共类中测试私有和受保护的方法。 反射或编写自己的子类。

也许有没有办法在非公共类中测试方法? 有些类被写成非公共的,能够测试它吗?

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

任何评论将不胜感激,谢谢。

法典:

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 测试和测试代码都可以在同一个包中。 project/src/main/com/tec/Util.java test-project/src/test/com/tec/UtilTest.java

不想在

与测试类相同的包中编写测试类?

好吧,在我的项目中,我通常将测试类放在不同的物理目录中,但与他们测试的类使用相同的包,这也是 Maven 推广的结构:

例如:

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

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

在此结构中组织测试代码允许测试代码访问包私有字段。而且我可以轻松地单独编译和打包它,以便生产jar文件不包含测试代码。

希望这能帮助你。

您不能从一个包访问另一个包的类(非公共)。非公共类对于其他包类是私有的。

最新更新