当前位置: 首页 > 知识库问答 >
问题:

代码覆盖率内联函数

屠华辉
2023-03-14

我有这个函数写在科特林

inline fun <T> handleEmptyResult(observable: Observable<T>,
                                 crossinline resultEmptyCheckingFunc: (obj: T?) -> Boolean): Observable<T> {
    return observable
        .flatMap {
            if (resultEmptyCheckingFunc(it)) {
                Observable.error<T>(ResultEmptyError(Throwable()))
            } else {
                Observable.just(it)
            }
        }
}

但是当我为此函数创建单元测试时,它在报告上显示0覆盖率。我正在使用jacoco进行代码覆盖。你们知道如何正确地对内联功能进行单元测试吗?谢谢!

共有1个答案

卫俊力
2023-03-14

由于代码是内联的,因此在您的测试中不会调用此函数,并且Jacoco认为您从未使用过它。

一条建议:忘记测试覆盖率,它是完全无用的。一个项目可以有很好的测试和30%的覆盖率。或者,有些人可以花费大量时间来获得100%的覆盖率,但在生产中仍然有几十个bug。我两个都看过。

 类似资料:
  • 这是一个重要的可量化指标,如果代码覆盖率很高,你就可以放心的修改代码,在发版本的时候也能睡个安稳觉。否则就是拆东墙补西墙,陷入无尽的 bug 诅咒中。 那么在 OpenResty 里面如何看到代码覆盖率呢?其实很简单,使用 LuaCov 可以很方便的实现。 我们先了解下 LuaCov,这是一个针对 Lua 脚本的代码覆盖率工具,通过 luarocks 来安装: luarocks install l

  • 我的代码运行在具有单独JVM的单独虚拟机上。我想在此虚拟机上以tcpserver模式设置JaCoCo代理以收集覆盖率数据。然后,我将在我的maven项目中以tcpclient模式设置JaCoCo代理,以连接到上面提到的VM并获取覆盖率数据。 问题是代理不收集任何覆盖数据。在中创建了覆盖率数据文件,但该文件为空。 下面是代理选项:-Java agent:/usr/xx/plugins/org . j

  • 问题内容: 我正在使用Mocha测试我的NodeJS应用程序。我无法弄清楚如何使用其代码覆盖功能。我尝试使用Google搜索,但没有找到任何合适的教程。请帮忙。 问题答案: 您需要一个额外的库来覆盖代码,而伊斯坦布尔的强大和便捷将使您震惊。通过Mocha测试后,请尝试以下操作: 现在,只需将命令nyc放在现有测试命令的前面,例如:

  • 我在声纳中的代码覆盖率显示为0%,这不是真的,因为我有单元测试。 格拉德尔 当我打开inside然后我可以看到成功的单元测试。 我在Jenkins环境中运行作为

  • 我正在为我的grails 3.1.6项目添加cobertura代码覆盖率,覆盖率报告似乎有点少,即我有单元测试用例(pos和neg两种情况)来覆盖if块,但报告说没有覆盖if块。gradle:2.13 Groovy:2.4.5 Grails:3.1.6 cobertura gradle Plugin:net.saliman:gradle-cobertura-plugin:2.3.2 这是我的代码

  • 问题内容: 我碰到的SO这个线程,其讲述PHP代码覆盖工具-代码覆盖工具对PHP 我从未从事过PHP,并且一直在使用Java针对用PHP编写的应用程序编写Selenium UI测试。当我经过上面提到的线程时,我感到(可能是错误的)当那些用PHP Unit编写的单元测试并且想要找出单元测试覆盖应用程序的程度时,将使用那些PHP代码覆盖工具。 我正在寻找一种解决方案,在其中执行我编写的,用Java编写