安卓应用是否支持用Java为Kotlin项目、Kotlin为Java项目编写测试?
Android 跨语言测试相关问题解答
Kotlin 开发的 Android 应用是否可以使用 Java 编写测试?
可以,二者没有兼容性限制。
Kotlin 和 Java 编译后都会生成兼容 Android 运行环境的字节码,Java 代码可以直接调用编译后的 Kotlin 业务代码,Mockito、JUnit 等常用 Java 测试框架都可以正常使用,和测试 Java 业务代码的写法完全一致,无需额外适配。
示例代码:
@Test public void testKotlinClass() { // 此处Mock的是Kotlin编写的User类 User mockUser = Mockito.mock(User.class); Mockito.when(mockUser.getName()).thenReturn("test"); Assert.assertEquals("test", mockUser.getName()); }
Java 开发的 Android 应用是否可以使用 Kotlin 编写测试?
完全支持。
Kotlin 原生具备全量 Java 互操作性,可以直接调用所有 Java 编写的业务代码,还可以利用 Kotlin 的语法糖简化测试代码逻辑。如果使用 Kotlin 编写测试,还可以选择 mockito-kotlin 扩展库,进一步简化 Mock 逻辑,比 Java 编写测试的开发效率更高。
示例代码:
@Test fun testJavaClass() { // 此处Mock的是Java编写的User类 val mockUser = mock<User>() `when`(mockUser.name).thenReturn("test") assertThat(mockUser.name).isEqualTo("test") }
补充说明
- 两种跨语言测试场景都不需要修改原有业务代码,只需要在测试目录
src/test(单元测试)或src/androidTest( instrumentation 测试)下编写对应语言的测试用例即可,测试代码不会被打包到正式APK中。 - 如果首次在项目中使用 Kotlin 编写测试,只要项目已经配置好 Kotlin 编译插件即可,不需要针对测试场景做额外特殊配置。
- Mockito 框架在两种场景下都可以正常使用,不需要担心兼容性问题。
内容的提问来源于stack exchange,提问作者henriquenovais
相关产品推荐
相关产品推荐

