diff --git a/full/src/test/java/de/ids_mannheim/de/korap/dao/VirtualCorpusDaoTest.java b/full/src/test/java/de/ids_mannheim/de/korap/dao/VirtualCorpusDaoTest.java
new file mode 100644
index 0000000..828a467
--- /dev/null
+++ b/full/src/test/java/de/ids_mannheim/de/korap/dao/VirtualCorpusDaoTest.java
@@ -0,0 +1,58 @@
+package de.ids_mannheim.de.korap.dao;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.List;
+
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import de.ids_mannheim.korap.config.BeanConfigTest;
+import de.ids_mannheim.korap.dao.VirtualCorpusDao;
+import de.ids_mannheim.korap.entity.VirtualCorpus;
+import de.ids_mannheim.korap.exceptions.KustvaktException;
+
+public class VirtualCorpusDaoTest extends BeanConfigTest{
+
+    @Autowired
+    VirtualCorpusDao dao;
+
+
+    @Test
+    public void retrieveVirtualCorpusByUserDory () {
+        List<VirtualCorpus> virtualCorpora =
+                dao.retrieveVirtualCorpusByUser("dory");
+        assertEquals(3,virtualCorpora.size());
+    }
+
+
+    @Test
+    public void retrieveVirtualCorpusByUserNemo () {
+        List<VirtualCorpus> virtualCorpora =
+                dao.retrieveVirtualCorpusByUser("nemo");
+
+    }
+
+
+    @Test
+    public void retrieveVirtualCorpusByUserMarlin () {
+        List<VirtualCorpus> virtualCorpora =
+                dao.retrieveVirtualCorpusByUser("marlin");
+
+    }
+
+
+    @Test
+    public void retrieveVirtualCorpusByUserPearl () {
+        List<VirtualCorpus> virtualCorpora =
+                dao.retrieveVirtualCorpusByUser("pearl");
+    }
+
+
+    @Override
+    public void initMethod () throws KustvaktException {
+        // TODO Auto-generated method stub
+        
+    }
+
+}
diff --git a/full/src/test/resources/test-config.xml b/full/src/test/resources/test-config.xml
index 593d38e..e158b6b 100644
--- a/full/src/test/resources/test-config.xml
+++ b/full/src/test/resources/test-config.xml
@@ -35,6 +35,7 @@
 		<property name="locations">
 			<array>
 				<value>classpath:test-jdbc.properties</value>
+				<value>file:./test-jdbc.properties</value>
 				<value>classpath:hibernate.properties</value>
 				<value>classpath:kustvakt-test.conf</value>
 			</array>
