在 MockK 单元测试中跳过一个参数,Kotlin
Skip a parameter in MockK unit test, Kotlin
我使用 MockK 库进行单元测试。
测试方法包含对结果没有意义的字符串。我想检查其他变量,但必须定义字符串的行为,因为它们在测试方法中使用。
对于,
every {
resources.getQuantityString(R.plurals.age, 10, 10)
} returns "10 years"
every {
resources.getString(
R.string.surname,
"surname"
)
} returns "surname"
如何在这些方法中省略参数?这样我就可以传递任何整数而不是 10,任何字符串而不是“姓氏”?在这种情况下,resources.getString
的结果无关紧要。我不想为测试计算每个参数的值。只是嘲笑一个行为。
您可以使用 answers
而不是 returns
,并且根据输入有很多选项 return,例如
every {
resources.getQuantityString(any(), any(), any())
} answers { "${arg<Int>(1)} years" }
every {
resources.getString(any(), any())
} answers { secondArg() }
查看 this table for the different parameters you can use in an answer。
我使用 MockK 库进行单元测试。
测试方法包含对结果没有意义的字符串。我想检查其他变量,但必须定义字符串的行为,因为它们在测试方法中使用。
对于
every {
resources.getQuantityString(R.plurals.age, 10, 10)
} returns "10 years"
every {
resources.getString(
R.string.surname,
"surname"
)
} returns "surname"
如何在这些方法中省略参数?这样我就可以传递任何整数而不是 10,任何字符串而不是“姓氏”?在这种情况下,resources.getString
的结果无关紧要。我不想为测试计算每个参数的值。只是嘲笑一个行为。
您可以使用 answers
而不是 returns
,并且根据输入有很多选项 return,例如
every {
resources.getQuantityString(any(), any(), any())
} answers { "${arg<Int>(1)} years" }
every {
resources.getString(any(), any())
} answers { secondArg() }
查看 this table for the different parameters you can use in an answer。