Mic*_*ł K 14 android unit-testing kotlin android-testing
在我的单元测试中,我使用Kotlin的反引号方法来提高可读性,例如
@Test fun `Foo should return bar`()
Run Code Online (Sandbox Code Playgroud)
它适用于<module>/src/test目录中的测试,但是当我尝试执行相同操作时,<module>/src/androidTest我得到一个异常:
Error:java.lang.IllegalArgumentException: bad descriptor: Lcom/packageName/MainActivityTest$Foo should return bar$1;
Error:Execution failed for task ':sample:transformClassesWithDexBuilderForDebugAndroidTest'. > com.android.build.api.transform.TransformException: org.gradle.tooling.BuildException: com.android.dx.cf.iface.ParseException: bad descriptor: Lcom/packageName/MainActivityTest$Foo should return bar$1;
Run Code Online (Sandbox Code Playgroud)
是否有一些技巧可以使它工作?
Cri*_*tan 10
添加了对函数名称中空格的支持,现在可在 API 30 中使用。
要使用它,集buildToolsVersion,compileSdkVersion并targetSdkVersion以30+和运行在Android 30+设备上测试。如果你想在测试以外的任何其他地方使用它,你也必须设置minSdkVersion为 30+。
如@nhaarman所述,Android不支持反引号函数名。从Kotlin编码约定:
在测试中(并且仅在测试中),可以在反引号中使用带有空格的方法名称。(请注意,Android运行时当前不支持此类方法名称。)测试代码中也允许在方法名称中使用下划线。
Run Code Online (Sandbox Code Playgroud)class MyTestCase { @Test fun `ensure everything works`() { ... } @Test fun ensureEverythingWorks_onAndroid() { ... } }
| 归档时间: |
|
| 查看次数: |
967 次 |
| 最近记录: |