所以这是我的项目的概述:模块 A 包含: - 所有 boxstore 数据 - 模块 A 中用于单元测试的 boxstore 模拟
模块 B 包含: - 注入了 BoxStore 的演示者 - PresenterTest 需要模拟 BoxStore
按照此链接模拟 BoxStore,当我在模块 A 中编写单元测试时,它工作正常。在模块 BI 中创建模拟时,得到 NoClassDefFoundError,我理解这是因为模块 B 测试不知道模块 A 测试对象。
所以我做了以下场景:
- 在模块 B 的 gradle 中添加:
sourceSets { test.java.srcDirs += [etc...] }
这样模块 B 就会知道模块 A 的模拟对象。
- 在模块 B 中复制 BoxStore 的模拟并在测试中使用它,但 BoxStore 在 build 文件夹下生成一个 java 文件,因此我无法创建我的模拟,因为一切都依赖于 MyObjectBox 来生成 BoxStore。
两种方法都失败了:(
关于如何解锁自己的任何想法?