【发布时间】:2021-09-27 17:44:25
【问题描述】:
我正在改进我的代码覆盖率,并且我正在使用 Sonar 来计算它。 但是 Sonar 和 PowerMock 不是很兼容。我想知道是否有另一种方法可以在不使用 PowerMock 的情况下模拟 UUID.randomUUID() 和 System.currentTimeMillis() 方法?
【问题讨论】:
-
模拟你不拥有的类是一种不好的模拟实践。模拟静态方法是另一种不好的模拟实践。使用 Powermock (或类似的)是一种气味。您可以更改代码以传递
Clock或Supplier<UUID>的实例吗?这将使您的测试代码更简单,并且需要更少的巫术(在运行时重写类)。