无法访问junit测试类中的包私有方法
Posted
技术标签:
【中文标题】无法访问junit测试类中的包私有方法【英文标题】:Not able to acess package private methods in junit test class 【发布时间】:2014-06-05 03:24:31 【问题描述】:所以现在我的项目中有以下标准包名称设置:
src/main/java/model/SampleClass.java 你可以查看@https://github.com/quinnliu/WalnutiQ/blob/master/src/main/java/model/SampleClass.java
src/test/java/model/SampleClassTest.java 你可以查看@https://github.com/quinnliu/WalnutiQ/blob/master/src/test/java/model/SampleClassTest.java
SampleClass.java 如下所示:
package main.java.model;
public class SampleClass
int packagePrivateMethod()
return -1;
SampleClassTest.java 看起来像这样:
package test.java.model;
import main.java.model.SampleClass;
public class SampleClassTest extends junit.framework.TestCase
private SampleClass sampleClass;
public void setUp()
this.sampleClass = new SampleClass();
public void test_packagePrivateMethod()
// this method can't be called right now why?
//this.sampleClass.packagePrivateMethod();
为什么不能调用方法packagePrivateMethod()???
【问题讨论】:
它不是私人的。它具有默认访问权限。 你知道package private(默认)访问意味着只有同一个包中的其他类可以访问它吗? 【参考方案1】:无法调用,因为这两个类不在同一个包中。一个在main.java.model
,另一个在test.java.model
。
【讨论】:
但是这里的最佳答案呢:***.com/questions/3004710/… 在这个答案(即传统的 maven 项目设置)中,使用了两个源文件夹src/main/java
和 src/test/java
。因此,这两个类在同一个包中(在本例中为根包或默认包)。以上是关于无法访问junit测试类中的包私有方法的主要内容,如果未能解决你的问题,请参考以下文章
无法访问扩展 Objective-C 类的 Swift 类中的私有变量