我的问题是关于在非公共类中测试方法。 我不是开发人员,而是单元测试人员。
我想我知道如何在公共类中测试私有和受保护的方法。 反射或编写自己的子类。
也许有没有办法在非公共类中测试方法? 有些类被写成非公共的,能够测试它吗?
前提条件:我无权在与测试类相同的包中编写测试类。
任何评论将不胜感激,谢谢。
法典:
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文件不包含测试代码。
希望这能帮助你。
您不能从一个包访问另一个包的类(非公共)。非公共类对于其他包类是私有的。