Gradle:从Test sourceSet中的主sourceSet覆盖Class

时间:2015-04-02 20:35:30

标签: java android unit-testing gradle dagger

我有一个提供Dagger模块的Modules类。在运行我的单元测试和androidTests时,我想覆盖这个类,类似于如何覆盖不同构建类型或风格的类。

这可能吗?目前,当我尝试在Duplicate class file found sourceSet中创建一个与test sourceSet中相应类具有相同限定名的类时,出现main错误。

最终,我希望在单元测试期间提供一些不同的数据库。

1 个答案:

答案 0 :(得分:1)

最简单的方法不是通过重写类(你已经注意到它们不起作用)。相反,您可以定义一个公共接口,然后有两个不同的实现。一个用于main,另一个用于test

这样,测试可以提供Test<Something>对象,而应用程序代码提供<Something>,而您正在测试的类将不知道差异。