Java:模拟外部库进行测试

时间:2019-07-04 05:30:06

标签: java mocking mockito apache-zookeeper powermock

我的测试太慢了,因为我在代码中使用了一个配置库,每次我设置或获取某些东西时至少要花费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,以便测试可以无延迟运行。

1 个答案:

答案 0 :(得分:1)

方法是创建一个服务门面,将对config-library / Apache-ZooKeeper的所有api调用隐藏在接口后面。您的应用仅与接口通信,并且对config-library / Apache-ZooKeeper的所有方法调用均在您的服务实现中完成。

要进行测试,您可以轻松地模拟该服务。

有关更多详细信息,请参见the-onion-architecture

相关问题