【问题标题】:Private function and null safe operator testing in KotlinKotlin 中的私有函数和 null 安全运算符测试
【发布时间】:2021-11-16 02:21:06
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: kotlin testing exception bad-request error-code


    【解决方案1】:

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

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

    所以你需要同时覆盖两者才能完全覆盖。

    【讨论】:

    • 谢谢,那我应该测试什么?那不为null时不调用toString(),为null时不调用?
    • 您不需要测试代码中的所有内容。以 100% 的测试覆盖率为目标是毫无意义的,而且会适得其反。您应该测试应用程序的核心功能,而不是测试其中的每一个条件。但是如果你真的想要,你需要测试响应体是否为空(取决于 response.errorBody() 是否为空)。
    猜你喜欢
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    相关资源
    最近更新 更多