gpt4 book ai didi

android - 内联函数导致单元测试代码覆盖率报告出错

转载 作者:IT老高 更新时间:2023-10-28 13:40:45 24 4
gpt4 key购买 nike

我正在为我用 Kotlin 编写的 Android 应用程序编写一些单元测试,但我从包含的内联集合函数中收到错误,在这种情况下特别是 sortedBy

 override fun onDaysSelected(dayOfWeekList: ArrayList<DayOfWeek>) {
view.userRoutingRule.days = dayOfWeekList.sortedBy { it.dayOfWeek }
renderRule()
}

这是我在使用覆盖率运行单元测试时遇到的错误

---- IntelliJ IDEA coverage runner ---- sampling ... include patterns: com.mypackage..* exclude patterns:[2019.02.02 14:49:40] (Coverage): Class data was not extracted: com.mypackage\myfile$onDaysSelected$$inlined$sortedBy$1: java.lang.Throwable

Process finished with exit code 0

我的单元测试都相应地通过了,但是当我去查看覆盖率报告时,它几乎完全是裸露的,因为这个错误阻止了它完成。

目前有什么解决办法吗?如果我不能只看报告,就很难知道我是否错过了某些条件。

最佳答案

计算使用 lambda 的 imline 方法的覆盖率是一个已知问题。 (见 No coverage report for inlined Kotlin methodshttps://discuss.kotlinlang.org/t/inline-functions-coverage/5366 )

如果要在当前状态下运行覆盖,则需要使用其他方法,例如在 DayOfWeek 中实现 Comparable 接口(interface)并使用 .sorted() 方法。

关于android - 内联函数导致单元测试代码覆盖率报告出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54498333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com