繁体   English   中英

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

[英]Kotlin inline keyword causing IntelliJ IDEA Coverage reporting 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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM