我发现在Kotlin中可以有两个具有相同名称的类,在同一个包中但其中一个在androidTest文件夹中,并且在运行Espresso测试时,它将是使用的那个。 这在Java下是不可能的,我想知道它是否是预期的行为,或者是由于其他原因。
在图片中,AppCollaborator,在Kotlin中存在于androidTest和main中,AS不会抱怨,但它确实与JavaCollaborator有关。
事实上,这种行为对于在测试期间加倍某些类非常有用(API等),但我不知道我是否可以依赖它。
答案 0 :(得分:2)
支持此功能,因为在output-build-folder中您有不同的子文件夹 e.g。
您的类文件存储在不同的目标文件夹中,但在运行时它们具有相同的完全限定名称,因为包名和类名相同。
这不是kotlin问题。这是一个正常的名字冲突。避免使用相同的名称进行测试和实施。通常,测试的名称附加Test
。在您的情况下:JavaCollaboratorTest