我的测试太慢了,因为我在代码中使用了一个配置库,每次我设置或获取某些东西时至少要花费100毫秒。
我正在使用Java,而我使用的配置库则使用Apache ZooKeeper来存储数据。
我多次使用Mockito和Powermock,但从未尝试模拟外部库,我想知道是否有可能。
import org.HybridConfiguration;
public class VisitManagerClass {
private static final String COUNT_ENABLED = "countEnabled";
private static final String COUNT = "count";
public static void pageVisited() {
boolean isCountEnabled = HybridConfiguration.getBooleanValue(COUNT_ENABLED);
if (isCountEnabled) {
long currentCount = HybridConfiguration.getLongValue(COUNT);
HybridConfiguration.setValue(COUNT, Long.toString(currentCount + 1));
}
}
}
我希望能够模拟库HybridConfiguration,以便测试可以没有任何延迟地运行。
最佳答案
解决方法是创建一个服务门面,将对config-library / Apache-ZooKeeper的所有api调用隐藏在接口后面。您的应用仅与该接口通信,并且对config-library / Apache-ZooKeeper的所有方法调用均在您的服务实现中完成。
为了进行测试,您可以轻松地模拟该服务。
有关更多详细信息,请参见the-onion-architecture