public void watchChildChange(final String key,
                                 final BiConsumer<String, String> updateHandler,
                                 final Consumer<String> deleteHandler) {
        Watch.Listener listener = watch(updateHandler, deleteHandler);
        WatchOption option = WatchOption.newBuilder()
                .withPrefix(ByteSequence.from(key, UTF_8))
                .build();
        if (!watchChildCache.containsKey(key)) {
            Watch.Watcher watch = client.getWatchClient().watch(ByteSequence.from(key, UTF_8), option, listener);
            watchChildCache.put(key, watch);
        }
    }
@Test
    public void testWatchChildChange() {
        BiConsumer<String, String> updateHandler = mock(BiConsumer.class);
        Consumer<String> deleteHandler = mock(Consumer.class);
        etcdClient.watchChildChange(WATCH_CHILD_CHANGE_KEY, updateHandler, deleteHandler);
        etcdClient.watchClose(WATCH_CHILD_CHANGE_KEY);
        verify(watcher).close();
    }