diff --git a/src/test/java/de/ids_mannheim/korap/collection/TestVCCaching.java b/src/test/java/de/ids_mannheim/korap/collection/TestVCCaching.java
index 795a6d3..632a194 100644
--- a/src/test/java/de/ids_mannheim/korap/collection/TestVCCaching.java
+++ b/src/test/java/de/ids_mannheim/korap/collection/TestVCCaching.java
@@ -2,7 +2,6 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
@@ -15,6 +14,9 @@
 import org.apache.lucene.store.MMapDirectory;
 import org.junit.Test;
 
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
 import de.ids_mannheim.korap.Krill;
 import de.ids_mannheim.korap.KrillCollection;
 import de.ids_mannheim.korap.KrillIndex;
@@ -25,6 +27,8 @@
 
 public class TestVCCaching {
 
+    public static final ObjectMapper mapper = new ObjectMapper();
+    
     private KrillIndex getSampleIndex () throws IOException {
         return new KrillIndex(new MMapDirectory(
                 Paths.get(getClass().getResource("/sample-index").getFile())));
@@ -90,14 +94,9 @@
         String json = IOUtils.toString(is);
 
         String result = new Krill(json).apply(this.index).toJsonString();
-        assertNotNull(result);
-        assertTrue(!result.isEmpty());
-
-        // test with match:eq
-        json.replaceFirst("match:ne", "match:eq");
-        result = new Krill(json).apply(this.index).toJsonString();
-        assertNotNull(result);
-        assertTrue(!result.isEmpty());
+        System.out.println(json);
+        JsonNode node = mapper.readTree(result);
+        assertTrue(node.at("/matches").size()>0);
     }
 
     private void testClearCache () {
@@ -132,7 +131,9 @@
     }
     
     @Test
-    public void testAutoCaching () throws IOException {
+    public void testAutoCachingMatchNe () throws IOException {
+        testSearchCachedVC();
+        // search from cache
         testSearchCachedVC();
         testClearCache();
     }
diff --git a/src/test/resources/collection/query-with-vc-ref.jsonld b/src/test/resources/collection/query-with-vc-ref.jsonld
index d50cd2a..ee0bb66 100644
--- a/src/test/resources/collection/query-with-vc-ref.jsonld
+++ b/src/test/resources/collection/query-with-vc-ref.jsonld
@@ -10,6 +10,6 @@
   },
   "collection": {
     "@type": "koral:docGroupRef",
-    "ref": "cache-goe"
+    "ref": "named-vc1"
   }
 }
