java – 禁用测试文件夹中的类的重复类错误 – Android Studio / IntelliJ

我需要能够关闭“重复类”错误和可视指示符(红色波浪线下划线),当您有两个在同一个包中但在不同文件夹中命名相同的类时,您会得到这个错误.在这种情况下,’主’和’测试’.

背景

可以说这是this帖子的重复,但是,我认为一些背景是为了避免一些明显的回复(而且,该帖子也没有令人满意的答案).

这个问题与单元测试和协作者模拟有关.众所周知,Android违反了java开发的基本“遏制继承”指南.这就是为什么你需要Robolectric来测试生命周期覆盖而不会让框架崩溃你的测试.您的协作者无法以正常方式进行模拟和注入,因为被测试的类是协作者.

在这种情况下,我的大型企业客户通过在活动和碎片中添加几层必须使用的类扩展来进一步违反了“对继承的遏制”指南.我无法修改这些图层,并试图模仿内部是不切实际的.最简单的解决方案是创建这个额外层的叶类的重复项,为测试中的类提供单元测试友好的结果.

这有效.运行单元测试时,将解析测试副本,并在运行生产代码时解决生产副本.

只是需要抑制的持续恼人的错误指示.

解决方法,IntelliJ插件,自定义类加载器等 – 都将被考虑(带说明).

最佳答案 它是硬编码的:
source

唯一的方法是更改​​源代码并构建自己的IntelliJ – 但您将无法使用Ultimate版本.

making an agent to replace the method – HighlightClassUtil.checkDuplicateTopLevelClass.

这可能会派上用场,因此您可以将其作为普通插件执行:How can I add a Javaagent to a JVM without stopping the JVM?

点赞