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

时间:2013-11-14 05:56:20

标签: java unit-testing

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

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

也许有没有办法在非公开类中测试方法?有些课程是非公开的,能够测试吗?

前提条件:我没有权利在测试类的同一个包中编写测试类。

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

代码:

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目录/主/ COM / TEC / Util.java     测试项目/ SRC /测试/ COM / TEC / UtilTest.java

2 个答案:

答案 0 :(得分:2)

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

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

例如:

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

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

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

希望这可以帮到你。

答案 1 :(得分:0)

您无法从其他包访问One Package的Class(Non Public)。非公共类是其他包类的私有类。