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

标签 java android unit-testing access-modifiers

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

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

最佳答案

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

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

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

参见 Java unit tests, directory layout更多背景

关于java - 没有模拟的单元测试包保护类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30713754/

相关文章:

java - Android 获取一个Layout拥有的所有children(包括Sub-childs)

android - 测试 Android 即时应用程序

Android - adb 工具找不到设备

PHP:如何制作可测试的静态方法

javascript - 测试装饰构造函数参数

java - 特定范围的颜色映射

java - Spring MVC : difference between <context:component-scan> and <annotation-driven/> tags?

Android AlarmManager 报警启动服务

ruby-on-rails - 你如何分解出 RSpec 中常见的 "before(:each)"调用,以便多个规范可以使用它们?

java - jOOQ 使用Where 子句更新查询