android - Kotlin 内联关键字导致 IntelliJ IDEA 覆盖率报告 0%

标签 android android-studio intellij-idea kotlin

我创建了一个非常简单的测试函数,如下所示

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)
}

我用覆盖率运行它...测试覆盖率是 0%。但是如果我删除 inline 关键字,现在会显示测试覆盖率。

这是 Kotlin 问题还是 Android IntelliJ IDEA 覆盖率问题? (注意:JaCoco 的覆盖范围很好)。

注意:我使用的是 Android Studio 2.0 和 Kotlin 1.0.2

最佳答案

编译内联函数时,编译器实质上会将其主体粘贴到调用位置(代替函数调用)。这意味着覆盖分析无法判断它是一个内联函数,因为它实际上并不存在于您定义它的位置。换句话说,这种行为是内联函数的自然产物。

关于android - Kotlin 内联关键字导致 IntelliJ IDEA 覆盖率报告 0%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37405782/

相关文章:

java - 无法检索另一个类中的字符串值

java - 未知类 : 'button' & invalid method decleration; return type required for findViewById

intellij-idea - IntelliJ 16 社区 : How to assign a keyboard key to show/hide the terminal

android - 如何使用Android Studio导出jar文件?

android - 视频抓拍人脸检测-安卓

scala - Intellij中如何运行指定的子模块播放应用

java - 从 Eclipse(或 IntelliJ IDEA)远程执行/调试 Java 代码

android - Intent抓图时如何获取方向类型?

android - 如何单独在我的最后一个列表项下方获得一些空间 - android

android - 如何在android中制作移动图形或图表?