diff --git a/SimoxUtility/tests/CMakeLists.txt b/SimoxUtility/tests/CMakeLists.txt
index ac69bf6ffddfde6a43eb2d31ea149f8f139f22ea..426368c785fafa3be8733dfda996f24b14a70d82 100644
--- a/SimoxUtility/tests/CMakeLists.txt
+++ b/SimoxUtility/tests/CMakeLists.txt
@@ -39,6 +39,7 @@ ENDMACRO()
 
 
 ADD_SUBDIRECTORY(algorithm)
+ADD_SUBDIRECTORY(caching)
 ADD_SUBDIRECTORY(color)
 ADD_SUBDIRECTORY(filesystem)
 ADD_SUBDIRECTORY(json)
diff --git a/SimoxUtility/tests/caching/CMakeLists.txt b/SimoxUtility/tests/caching/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f362a76ffd05db0fa03437426b5fc72fc33af575
--- /dev/null
+++ b/SimoxUtility/tests/caching/CMakeLists.txt
@@ -0,0 +1,3 @@
+
+ADD_SU_TEST( CacheMap )
+
diff --git a/SimoxUtility/tests/caching/CacheMap.cpp b/SimoxUtility/tests/caching/CacheMap.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..c8220a17c18407718fd7a8c8939a39191d72fb4c
--- /dev/null
+++ b/SimoxUtility/tests/caching/CacheMap.cpp
@@ -0,0 +1,79 @@
+/*
+ * This file is part of ArmarX.
+ *
+ * ArmarX is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * ArmarX is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @package    RobotAPI::ArmarXObjects::FrameTracking
+ * @author     Adrian Knobloch ( adrian dot knobloch at student dot kit dot edu )
+ * @date       2019
+ * @copyright  http://www.gnu.org/licenses/gpl-2.0.txt
+ *             GNU General Public License
+ */
+
+#define BOOST_TEST_MODULE SimoxUtility/color/ColorMap
+
+#include <unordered_map>
+
+#include <boost/test/included/unit_test.hpp>
+
+#include <SimoxUtility/caching/CacheMap.h>
+
+#include <iostream>
+
+
+namespace CacheMapTest
+{
+
+}
+
+
+BOOST_AUTO_TEST_SUITE(CacheMapTest)
+
+
+BOOST_AUTO_TEST_CASE(test_at_empty)
+{
+    auto fetchFn = [](int i)
+    {
+        return std::to_string(i);
+    };
+
+    simox::caching::CacheMap<int, std::string> cache(fetchFn);
+
+    BOOST_CHECK(cache.empty());
+    BOOST_CHECK_EQUAL(cache.size(), 0);
+
+    BOOST_CHECK_EQUAL(cache.get(1), "1");
+    BOOST_CHECK_EQUAL(cache.size(), 1);
+
+    BOOST_CHECK_EQUAL(cache.get(1), "1");
+    BOOST_CHECK_EQUAL(cache.size(), 1);
+
+    BOOST_CHECK_EQUAL(cache.get(2), "2");
+    BOOST_CHECK_EQUAL(cache.size(), 2);
+
+    BOOST_CHECK_EQUAL(cache.get(2), "2");
+    BOOST_CHECK_EQUAL(cache.size(), 2);
+
+
+    const bool clear = true;
+    cache.setFetchFn([](int i)
+    {
+        return std::to_string(-i);
+    }, clear);
+    BOOST_CHECK_EQUAL(cache.size(), 0);
+    BOOST_CHECK(cache.empty());
+}
+
+
+
+BOOST_AUTO_TEST_SUITE_END()