Kotlin inline关键字导致IntelliJ IDEA覆盖率报告0%
我创建了一个非常简单的测试函数如下
class SimpleClassTest { lateinit var simpleObject: SimpleClass @Mock lateinit var injectedObject: InjectedClass @Before fun setUp() { MockitoAnnotations.initMocks(this) } @Test fun testSimpleFunction() { simpleObject = lookupInstance() } inline fun lookupInstance() = SimpleClass(injectedObject) }
我用Coverage运行它…测试覆盖率是0%。 但是,如果我删除inline
关键字,测试范围编号现在显示。
这是一个Kotlin问题或Android IntelliJ IDEA覆盖问题? (注意:JaCoco覆盖率很好)。
注意:我正在使用Android Studio 2.0和Kotlin 1.0.2
- 如何在Android和JavaScript中使用kotlin中的可重用库?
- Kotlin的数据类,Android室和自定义setter
- Rxjava与kotlin
- Android Kotlin:java.lang.NoClassDefFoundError:<KotlinObject>的解析失败
- Android使用另一个活动保存的信息创建listitem / object
编译内联函数时,编译器将其主体粘贴到调用站点(代替函数调用)。 这意味着覆盖率分析不能说明它是一个内联函数,因为它并不存在于你定义的地方。 换句话说,这个行为是一个函数被内联的意义的一个自然的人为因素。
- Firebase AdMob引发IncompatibleClassChangeError
- 我的输入不被识别
- 在Android应用程序中使用kotlin静态类似的方法
- 应用程序图标不显示在Android版本大于4.4.2的设备上
- HttpException未被onError()捕获
- Android Kotlin:错误未解决的参考:DaggerAppComponent
- Android Kotlin受保护属性公开其私有类型ExpiresLayout
- 有问题从fragmentManager / MapFragment移动到supportfragmentManager / SupportMapFragment
- JobScheduler支持比Lolipop更旧的版本