测试类包含以下方法:
protected void recordRepositoryInvocationMetrics(Method method, Object target, long queryDuration) {
Timer.builder("mysql.call.duration")
.description("MySqL Database call Duration")
.tag("method.name", target.getClass().getSimpleName() + "." + method.getName())
.tag("service.name", context.getId() != null ? context.getId() : "unknown")
.register(meterRegistry)
.record(queryDuration, TimeUnit.MILLISECONDS);
}
为了让这个测试成功我头疼不已。
如何绕过/处理此方法?
我可以重组这段代码,使它更容易被模仿吗?
1条答案
按热度按时间yeotifhr1#
解决方案是使用"partial mock",将
@Spy
注解添加到被测类中,如下所示:在测试中,我可以这样做:
方法仍然会被调用,但其中的代码不会被执行。这允许我在不执行静态
Timer
方法的情况下测试类的逻辑。