我的问题是关于在非公开课中测试方法。我不是开发人员,而是单位测试人员。
我想我知道如何在公共类中测试私有和受保护的方法。反射或编写自己的子类。
也许有没有办法在非公开类中测试方法?有些课程是非公开的,能够测试吗?
前提条件:我没有权利在测试类的同一个包中编写测试类。
任何评论都将不胜感激,谢谢。
代码:
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
答案 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)。非公共类是其他包类的私有类。