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

Unit test package protected classes without mock

我目前正在为一个应用程序使用 Java,我想为这个应用程序编写单元测试。我在应用程序的不同包中有一些 类,其中一些 类 具有访问修饰符 /* package protected */,即没有访问修饰符。我非常想保留这个但是如何处理测试,因为它们不在同一个包中?这会使事情复杂化吗?如果替代方案是使用一些模拟库,那是不值得的,我将 类 public.

我正在使用 Android studio,顺便说一下,该应用程序是一个 Android 应用程序。

编写有用的单元测试与模拟同样重要;你最好远离 "mocking" 包结构问题。

可能您应该首先阅读一些关于单元测试的更基础的 material。这是一个非常基本的约定,您的单元测试的包与相应的 class 被测包完全相似。

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

有关更多背景信息,请参阅 Java unit tests, directory layout