如何创建以下方法的模拟测试



我创建了一个应用程序,其中使用了Zookeeper的异步api。我无法编写以下方法的模拟测试。

public static void createAssignNode(String path, long endPointer) {
        zk.create(path, Bytes.toBytes(endPointer),
                ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT,assignTaskWorkerCallback,endPointer);
}
static AsyncCallback.StringCallback assignTaskWorkerCallback = new AsyncCallback.StringCallback() {
    public void processResult(int resultCode, String path, Object endPointer, String name) {
        switch (KeeperException.Code.get(resultCode)) {
            case CONNECTIONLOSS:
                LOG.error("Connection Loss");
                throw new IllegalStateException();
            case OK:
                LOG.info("My created task name: " + name);
                break;
            default:
                LOG.error("Something went wrong" + KeeperException.create(KeeperException.Code.get(resultCode), path));
        }
    }
};

我读了很多关于如何编写模拟测试用例的信息,但在编写上述方法的模拟测试时仍然面临问题。

我是第一次写模拟测试

要编写测试,您首先需要知道要测试的行为。如果你不能简明扼要地描述你正在测试的行为,那么你将无法编写一个简洁的测试用例。

这段代码中唯一适合使用模拟进行测试的部分是测试您是否向 zookeeper 注册了回调。要对此进行测试,您需要将一个模拟动物园管理员实例注入到您的 zk 变量中。对于您当前的设计来说,这可能会很棘手,因为您已经将其设置为静态。如果 zk 是注入到构造函数中的实例成员,那么您可以轻松地在测试用例中将其替换为模拟对象。

相关内容

  • 没有找到相关文章

最新更新