代码覆盖内联函数
Code Coverage Inline Function
我用 Kotlin 编写了这个函数
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 进行代码覆盖。你们知道如何正确地对内联函数进行单元测试吗?
谢谢!
由于代码是内联的,在你的测试中没有调用这个函数,jacoco
认为你从来没有用过它。
一条建议:忘记测试覆盖率,它完全没用。一个项目可以有很好的测试和 30% 的覆盖率。或者有人可以花费大量时间来获得 100% 的覆盖率,但在生产环境中仍然存在数十个错误。我都看过了。
我用 Kotlin 编写了这个函数
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 进行代码覆盖。你们知道如何正确地对内联函数进行单元测试吗? 谢谢!
由于代码是内联的,在你的测试中没有调用这个函数,jacoco
认为你从来没有用过它。
一条建议:忘记测试覆盖率,它完全没用。一个项目可以有很好的测试和 30% 的覆盖率。或者有人可以花费大量时间来获得 100% 的覆盖率,但在生产环境中仍然存在数十个错误。我都看过了。