首页 > 解决方案 > Kotlin 中的私有函数和 null 安全运算符测试

问题描述

我正在尝试提高测试覆盖率,但我对某些被视为“未覆盖”或“仅部分覆盖”的行感到困惑,例如:

400 -> throw BadRequestException(response.code(), response.errorBody()?.string())

if (response.code() !in 200..299) {
      throwError(response)
}

throwError 是一个私有函数。我正在测试,响应代码 204,有一个成功事件和 400,有正确的错误被抛出。但是如何检查 throwError 是否被调用?

另外,当我检查是否抛出了错误 BadRequestException 时,为什么只满足 1 或 2 个条件?

标签: kotlintestingexceptionbad-requesterror-code

解决方案


在第一种情况下,两个条件应该是:

  1. response.errorBody()null
  2. response.errorBody()不是null

因此,您需要同时覆盖两者才能完全覆盖它。


推荐阅读