diff --git a/test/harmonicenergytest.cc b/test/harmonicenergytest.cc
index c8ebbba07a9adf2a13c8a924b650c6a60990b173..fcc88fdedb2b4e2501e9ef0f09c10570102cf857 100644
--- a/test/harmonicenergytest.cc
+++ b/test/harmonicenergytest.cc
@@ -49,6 +49,42 @@ void testEnergy(const GridType* grid, const std::vector<TargetSpace>& coefficien
 
 }
 
+template <class GridType>
+void testGradientOfEnergy(const GridType* grid, const std::vector<TargetSpace>& coefficients)
+{
+    HarmonicEnergyLocalStiffness<typename GridType::LeafGridView,TargetSpace> assembler;
+
+    std::vector<typename TargetSpace::EmbeddedTangentVector> gradient;
+    assembler.assembleEmbeddedGradient(*grid->template leafbegin<0>(),
+                                       coefficients,
+                                       gradient);
+
+    ////////////////////////////////////////////////////////////////////////////////////////
+    //  Assemble finite difference approximation of the gradient
+    ////////////////////////////////////////////////////////////////////////////////////////
+
+    std::vector<typename TargetSpace::EmbeddedTangentVector> fdGradient;
+    assembler.assembleEmbeddedFDGradient(*grid->template leafbegin<0>(),
+                                       coefficients,
+                                       fdGradient);
+
+    double diff = 0;
+    for (size_t i=0; i<fdGradient.size(); i++)
+        diff = std::max(diff, (gradient[i] - fdGradient[i]).infinity_norm());
+    
+    if (diff > 1e-6) {
+        
+        std::cout << "gradient: " << std::endl;
+        for (size_t i=0; i<gradient.size(); i++)
+            std::cout << gradient[i] << std::endl;
+    
+        std::cout << "fd gradient: " << std::endl;
+        for (size_t i=0; i<fdGradient.size(); i++)
+            std::cout << fdGradient[i] << std::endl;
+
+    }
+    
+}
 
 template <int domainDim>
 void testUnitVector3d()
@@ -102,7 +138,8 @@ void testUnitVector3d()
         }
 
         testEnergy<GridType>(grid, coefficients);
-                
+        testGradientOfEnergy(grid, coefficients);
+        
     }
 
 }