【问题标题】:Unit test package protected classes without mock没有模拟的单元测试包保护类
【发布时间】:2015-08-23 04:35:53
【问题描述】:

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

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

【问题讨论】:

  • 我强烈建议移动测试,以便它们与单元测试类位于同一个包中,这样更简单、更清晰。或者,在标准 Java 中,可以使用反射来绕过可见性范围(不知道这是否适用于 Android,因此我没有将此作为答案)。无论哪种方式,建议保持不变。移动测试;)

标签: java android unit-testing access-modifiers


【解决方案1】:

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

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

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

更多背景信息请见Java unit tests, directory layout

【讨论】:

    猜你喜欢
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    相关资源
    最近更新 更多