diff --git a/tests/mesa_pd/kernel/cnt/VBondContact.test.cpp b/tests/mesa_pd/kernel/cnt/VBondContact.test.cpp
index 796eca1063d805b5a366f70323cc99212c3d1e2f..f0f945883145a8a3fe6c9dd47ea21ed6e81c7ac7 100644
--- a/tests/mesa_pd/kernel/cnt/VBondContact.test.cpp
+++ b/tests/mesa_pd/kernel/cnt/VBondContact.test.cpp
@@ -45,6 +45,8 @@ int main( int argc, char ** argv )
       return EXIT_SUCCESS;
    }
 
+   using Interaction = kernel::cnt::VBondContact;
+
    //init data structures
    auto ps = std::make_shared<data::ParticleStorage>(100);
 
@@ -54,19 +56,34 @@ int main( int argc, char ** argv )
    p1.getTypeRef()            = 0;
 
    data::Particle&& p2        = *ps->create();
-   p2.getPositionRef()        = Vec3(0,0,0);
+   p2.getPositionRef()        = Vec3(Interaction::a,0,0);
    p2.getForceRef()           = Vec3(0,0,0);
    p2.getTypeRef()            = 0;
 
    data::ParticleAccessor accessor(ps);
 
    //init kernels
-   kernel::cnt::VBondContact vbond;
-
-   //check equilibrium distance
-   vbond(0, 1, accessor);
-   WALBERLA_CHECK_FLOAT_EQUAL( p1.getForce(), Vec3(0,0,0) );
-   WALBERLA_CHECK_FLOAT_EQUAL( p2.getForce(), Vec3(0,0,0) );
+   Interaction vbond;
+
+   auto calcForce = [&](const Vec3 pos1, const Vec3 pos2) {
+      p1.setPosition(pos1);
+      p2.setPosition(pos2);
+      clear(p1.getForceRef());
+      clear(p2.getForceRef());
+      vbond(0, 1, accessor);
+      WALBERLA_CHECK_FLOAT_EQUAL(p1.getForce(), -p2.getForce());
+      return p1.getForce();
+   };
+
+   const Vec3 randomNormal = Vec3(1_r, 2_r, 3_r).getNormalized();
+
+   WALBERLA_LOG_INFO("checking repulsion - equilibrium - attraction");
+   WALBERLA_CHECK_LESS       (dot(randomNormal, calcForce(Vec3(0), randomNormal * (Interaction::a - 1_r))),
+                              0_r);
+   WALBERLA_CHECK_FLOAT_EQUAL(dot(randomNormal, calcForce(Vec3(0), randomNormal * Interaction::a)),
+                              0_r);
+   WALBERLA_CHECK_GREATER    (dot(randomNormal, calcForce(Vec3(0), randomNormal * (Interaction::a + 1_r))),
+                              0_r);
 
    return EXIT_SUCCESS;
 }