diff --git a/tests/MeshDataBaseForTests.cpp b/tests/MeshDataBaseForTests.cpp
index 8a873625a365fd3aed7ff23ecdfb82e91bf72926..8debe252a86fac67463ffc74ab17e1f9ccf141ea 100644
--- a/tests/MeshDataBaseForTests.cpp
+++ b/tests/MeshDataBaseForTests.cpp
@@ -1,14 +1,19 @@
 #include <MeshDataBaseForTests.hpp>
-#include <utils/PugsAssert.hpp>
-
 #include <mesh/CartesianMeshBuilder.hpp>
+#include <mesh/Connectivity.hpp>
+#include <utils/PugsAssert.hpp>
 
 const MeshDataBaseForTests* MeshDataBaseForTests::m_instance = nullptr;
 
 MeshDataBaseForTests::MeshDataBaseForTests()
 {
-  std::make_shared<CartesianMeshBuilder>(TinyVector<3>{0, 1, 0}, TinyVector<3>{2, -1, 3},
-                                         TinyVector<3, size_t>{6, 7, 3});
+  m_cartesian_1d_mesh = CartesianMeshBuilder{TinyVector<1>{-1}, TinyVector<1>{3}, TinyVector<1, size_t>{23}}.mesh();
+
+  m_cartesian_2d_mesh =
+    CartesianMeshBuilder{TinyVector<2>{0, -1}, TinyVector<2>{3, 2}, TinyVector<2, size_t>{6, 7}}.mesh();
+
+  m_cartesian_3d_mesh =
+    CartesianMeshBuilder{TinyVector<3>{0, 1, 0}, TinyVector<3>{2, -1, 3}, TinyVector<3, size_t>{6, 7, 4}}.mesh();
 }
 
 const MeshDataBaseForTests&
@@ -31,3 +36,20 @@ MeshDataBaseForTests::destroy()
   delete m_instance;
   m_instance = nullptr;
 }
+
+template <size_t Dimension>
+const Mesh<Connectivity<Dimension>>&
+MeshDataBaseForTests::cartesianMesh() const
+{
+  if constexpr (Dimension == 1) {
+    return dynamic_cast<const Mesh<Connectivity<Dimension>>&>(*m_cartesian_1d_mesh);
+  } else if constexpr (Dimension == 2) {
+    return dynamic_cast<const Mesh<Connectivity<Dimension>>&>(*m_cartesian_2d_mesh);
+  } else if constexpr (Dimension == 3) {
+    return dynamic_cast<const Mesh<Connectivity<Dimension>>&>(*m_cartesian_3d_mesh);
+  }
+}
+
+template const Mesh<Connectivity<1>>& MeshDataBaseForTests::cartesianMesh<1>() const;
+template const Mesh<Connectivity<2>>& MeshDataBaseForTests::cartesianMesh<2>() const;
+template const Mesh<Connectivity<3>>& MeshDataBaseForTests::cartesianMesh<3>() const;
diff --git a/tests/MeshDataBaseForTests.hpp b/tests/MeshDataBaseForTests.hpp
index 31dad8f384b8c96d2d325940a3a4e3267f6c5793..2a1b1c06c864f37981fd275067e0994a589afaac 100644
--- a/tests/MeshDataBaseForTests.hpp
+++ b/tests/MeshDataBaseForTests.hpp
@@ -3,6 +3,12 @@
 
 #include <mesh/IMesh.hpp>
 
+template <size_t Dimension>
+class Connectivity;
+
+template <typename ConnectivityT>
+class Mesh;
+
 #include <memory>
 
 class MeshDataBaseForTests
@@ -12,7 +18,14 @@ class MeshDataBaseForTests
 
   static const MeshDataBaseForTests* m_instance;
 
+  std::shared_ptr<const IMesh> m_cartesian_1d_mesh;
+  std::shared_ptr<const IMesh> m_cartesian_2d_mesh;
+  std::shared_ptr<const IMesh> m_cartesian_3d_mesh;
+
  public:
+  template <size_t Dimension>
+  const Mesh<Connectivity<Dimension>>& cartesianMesh() const;
+
   static const MeshDataBaseForTests& get();
   static void create();
   static void destroy();