无法访问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/javasrc/test/java。因此,这两个类在同一个包中(在本例中为根包或默认包)。

以上是关于无法访问junit测试类中的包私有方法的主要内容,如果未能解决你的问题,请参考以下文章