这似乎不太可能,但有没有办法以某种方式模拟静态方法,第二次以另一种方式模拟静态方法?
案例场景 -
$ruby s3493188_p3.rb --api-key="abC9hsk9"
ERROR: "s3493188_p3.rb execute" was called with no arguments
Usage: "s3493188_p3.rb [keyword] --format oneline --no-country-code --api-key=API-KEY"
测试以下列方式编写。
if(StringUtils.isEmpty("")) {
throw Exception();
}
...
if(StringUtils.isEmpty("")) {
doSomething();
}
答案 0 :(得分:1)
你不应该使用 mocking 来控制这样的“内部”。
通过控制到达静态调用的字符串值,您可以轻松控制被测代码的功能。你希望测试真实;然后编写一个推入空字符串的测试;这需要例外。
你有另一个不应该抛出的生产代码方法 - 然后写另一个测试;并做必要的设置。
但是不开始嘲笑这样的方法。如果您认为必须这样做,那么您的设计是不可测试的;换句话说:破碎!修复你的设计,而不是使用大嘲笑锤!