Java 没有模拟的单元测试包保护类

Java 没有模拟的单元测试包保护类,java,android,unit-testing,access-modifiers,Java,Android,Unit Testing,Access Modifiers,我目前正在为一个应用程序使用Java,我想为这个应用程序编写单元测试。我在应用程序的不同包中有一些类,其中一些类具有访问修饰符/*包保护*/,即无访问修饰符。我很想保留这个,但是测试如何处理这个问题,因为它们不在同一个包中?这会使事情复杂化吗?如果另一种选择是使用一些模拟库,那就不值得了,我会公开我的类 我使用的是Android studio,顺便说一下,这个应用程序是一个Android应用程序 与模拟一样重要的是编写有用的单元测试;您最好远离“模拟”包结构问题 也许您应该首先阅读一些关于单元测

我目前正在为一个应用程序使用Java,我想为这个应用程序编写单元测试。我在应用程序的不同包中有一些类,其中一些类具有访问修饰符
/*包保护*/
,即无访问修饰符。我很想保留这个,但是测试如何处理这个问题,因为它们不在同一个包中?这会使事情复杂化吗?如果另一种选择是使用一些模拟库,那就不值得了,我会公开我的类


我使用的是Android studio,顺便说一下,这个应用程序是一个Android应用程序

与模拟一样重要的是编写有用的单元测试;您最好远离“模拟”包结构问题

也许您应该首先阅读一些关于单元测试的基本资料。这是一个非常基本的约定,单元测试的包与被测试的相应类的包完全相似

意思是:您的生产代码可能位于src/my/package/A.java下,您的测试代码可能位于test/my/package/ATest.java下


有关更多背景信息,请参见

,我强烈建议移动测试,使其与进行单元测试的类位于同一个包中,这样更简单、更清晰。或者,在标准Java中,可以使用反射来绕过可见性范围(不知道这在Android中是否有效,因此我没有将此作为答案)。无论如何,建议都是一样的。移动测试;)