diff --git a/Tests/MeshLib/TestVtkMappedMeshSource.cpp b/Tests/MeshLib/TestVtkMappedMeshSource.cpp
index 4f0c0beb12811de90e643b8f038eb0fbf24bd2cd..353f44913f290c64a487ff9827ad940dd3a4bdd8 100644
--- a/Tests/MeshLib/TestVtkMappedMeshSource.cpp
+++ b/Tests/MeshLib/TestVtkMappedMeshSource.cpp
@@ -35,7 +35,8 @@
 #include <vtkCellData.h>
 #include <vtkPointData.h>
 
-// Creates a mesh with double and int point and cell properties
+// Creates a mesh with different types of data (double, int, etc.) and point,
+// cell, or integration point properties.
 class InSituMesh : public ::testing::Test
 {
     public:
@@ -62,6 +63,14 @@ class InSituMesh : public ::testing::Test
         std::iota(
             cell_double_properties->begin(), cell_double_properties->end(), 1);
 
+        std::string const field_prop_name("FieldDoubleProperty");
+        auto* const field_double_properties =
+            mesh->getProperties().createNewPropertyVector<double>(
+                field_prop_name, MeshLib::MeshItemType::IntegrationPoint);
+        field_double_properties->resize(mesh->getNumberOfElements() * 2);
+        std::iota(
+            field_double_properties->begin(), field_double_properties->end(), 1);
+
         std::string const point_int_prop_name("PointIntProperty");
         auto* const point_int_properties =
             mesh->getProperties().createNewPropertyVector<int>(
@@ -77,6 +86,13 @@ class InSituMesh : public ::testing::Test
         cell_int_properties->resize(mesh->getNumberOfElements());
         std::iota(cell_int_properties->begin(), cell_int_properties->end(), 1);
 
+        std::string const field_int_prop_name("FieldIntProperty");
+        auto* const field_int_properties =
+            mesh->getProperties().createNewPropertyVector<int>(
+                field_int_prop_name, MeshLib::MeshItemType::IntegrationPoint);
+        field_int_properties->resize(mesh->getNumberOfElements() * 2);
+        std::iota(field_int_properties->begin(), field_int_properties->end(), 1);
+
         std::string const point_unsigned_prop_name("PointUnsignedProperty");
         auto point_unsigned_properties =
             mesh->getProperties().createNewPropertyVector<unsigned>(
@@ -95,6 +111,15 @@ class InSituMesh : public ::testing::Test
                   cell_unsigned_properties->end(),
                   1);
 
+        std::string const field_unsigned_prop_name("FieldUnsignedProperty");
+        auto field_unsigned_properties =
+            mesh->getProperties().createNewPropertyVector<unsigned>(
+                field_unsigned_prop_name, MeshLib::MeshItemType::IntegrationPoint);
+        field_unsigned_properties->resize(mesh->getNumberOfElements() * 2);
+        std::iota(field_unsigned_properties->begin(),
+                  field_unsigned_properties->end(),
+                  1);
+
         std::string const material_ids_name("MaterialIDs");
         auto material_id_properties =
             mesh->getProperties().createNewPropertyVector<int>(
@@ -207,6 +232,31 @@ TEST_F(InSituMesh, DISABLED_MappedMeshSourceRoundtrip)
     ASSERT_EQ(range[0], 1.0);
     ASSERT_EQ(range[1], 1 + mesh->getNumberOfElements() - 1);
 
+    // Field data arrays
+    vtkDataArray* fieldDoubleArray = vtkDataArray::SafeDownCast(
+        output->GetFieldData()->GetAbstractArray("FieldDoubleProperty"));
+    ASSERT_EQ(fieldDoubleArray->GetSize(), mesh->getNumberOfElements() * 2);
+    ASSERT_EQ(fieldDoubleArray->GetComponent(0, 0), 1.0);
+    range = fieldDoubleArray->GetRange(0);
+    ASSERT_EQ(range[0], 1.0);
+    ASSERT_EQ(range[1],  mesh->getNumberOfElements() * 2);
+
+    vtkDataArray* fieldIntArray = vtkDataArray::SafeDownCast(
+        output->GetFieldData()->GetAbstractArray("FieldIntProperty"));
+    ASSERT_EQ(fieldIntArray->GetSize(), mesh->getNumberOfElements() * 2);
+    ASSERT_EQ(fieldIntArray->GetComponent(0, 0), 1.0);
+    range = fieldIntArray->GetRange(0);
+    ASSERT_EQ(range[0], 1.0);
+    ASSERT_EQ(range[1], mesh->getNumberOfElements() * 2);
+
+    vtkDataArray* fieldUnsignedArray = vtkDataArray::SafeDownCast(
+        output->GetFieldData()->GetAbstractArray("FieldUnsignedProperty"));
+    ASSERT_EQ(fieldUnsignedArray->GetSize(), mesh->getNumberOfElements() * 2);
+    ASSERT_EQ(fieldUnsignedArray->GetComponent(0, 0), 1.0);
+    range = fieldUnsignedArray->GetRange(0);
+    ASSERT_EQ(range[0], 1.0);
+    ASSERT_EQ(range[1], mesh->getNumberOfElements() * 2);
+
     // -- Write VTK mesh to file (in all combinations of binary, appended and compressed)
     // atm vtkXMLWriter::Appended does not work, see http://www.paraview.org/Bug/view.php?id=13382
     for(int dataMode : { vtkXMLWriter::Ascii, vtkXMLWriter::Binary })
@@ -228,6 +278,7 @@ TEST_F(InSituMesh, DISABLED_MappedMeshSourceRoundtrip)
             // Both VTK meshes should be identical
             ASSERT_EQ(vtkMesh->GetNumberOfPoints(), output->GetNumberOfPoints());
             ASSERT_EQ(vtkMesh->GetNumberOfCells(), output->GetNumberOfCells());
+            ASSERT_EQ(vtkMesh->GetFieldData()->GetNumberOfArrays(), output->GetFieldData()->GetNumberOfArrays());
             ASSERT_EQ(vtkMesh->GetPointData()->GetScalars("PointDoubleProperty")->GetNumberOfTuples(),
                 pointDoubleArray->GetNumberOfTuples());
             ASSERT_EQ(vtkMesh->GetPointData()->GetScalars("PointIntProperty")->GetNumberOfTuples(),