diff --git a/source/RobotAPI/components/RobotState/test/RobotStateTest.cpp b/source/RobotAPI/components/RobotState/test/RobotStateTest.cpp
index 5acec7e883802970c0e0cd14dbc33c5bd78b888c..592802e397a8c9ecf2df84e39bcd2286984d3fe6 100644
--- a/source/RobotAPI/components/RobotState/test/RobotStateTest.cpp
+++ b/source/RobotAPI/components/RobotState/test/RobotStateTest.cpp
@@ -75,29 +75,42 @@ BOOST_AUTO_TEST_CASE(RobotStateComponentHistoryTest)
 {
     RobotStateComponentTestEnvironment env("RSC");
 
-    NameValueMap joints;
     while (env._manager->getObjectState("RobotStateComponent") < eManagedIceObjectStarted)
     {
         ARMARX_INFO_S << "Waiting";
         usleep(100000);
     }
+
+    const IceUtil::Time t1In = IceUtil::Time::seconds(1);
+    const IceUtil::Time t2In = t1In + IceUtil::Time::milliSeconds(110);
+
+    NameValueMap joints;
+
     joints["Elbow L"] = 0;
-    env._rsc->reportJointAngles(joints, IceUtil::Time::now().toMicroSeconds(), true);
+    env._rsc->reportJointAngles(joints, t1In, true);
     auto t1 = env._rsc->getSynchronizedRobot()->getTimestamp()->timestamp;
-    usleep(10000);
+
     joints["Elbow L"] = 1;
-    env._rsc->reportJointAngles(joints, IceUtil::Time::now().toMicroSeconds(), true);
+    env._rsc->reportJointAngles(joints, t2In, true);
     auto t2 = env._rsc->getSynchronizedRobot()->getTimestamp()->timestamp;
-    auto config = env._rsc->getJointConfigAtTimestamp(t1);
     BOOST_CHECK(t2 > t1);
-    BOOST_CHECK_EQUAL(config["Elbow L"], 0);
+
+    auto config = env._rsc->getJointConfigAtTimestamp(t1);
+
+    BOOST_REQUIRE_EQUAL(config.count("Elbow L"), 1);
+
+    BOOST_CHECK_EQUAL(config.at("Elbow L"), 0);
+
     config = env._rsc->getJointConfigAtTimestamp(t2);
-    BOOST_CHECK_EQUAL(config["Elbow L"], 1);
+    BOOST_CHECK_EQUAL(config.at("Elbow L"), 1);
+
     config = env._rsc->getJointConfigAtTimestamp(t2 + 1); // future timestamp -> latest values should be returned
-    BOOST_CHECK_EQUAL(config["Elbow L"], 1);
+    BOOST_CHECK_EQUAL(config.at("Elbow L"), 1);
+
     config = env._rsc->getJointConfigAtTimestamp((t1 + t2) * 0.5); // interpolated values in the middle
-    BOOST_CHECK_CLOSE(config["Elbow L"], 0.5f, 0.01);
+    BOOST_CHECK_CLOSE(config.at("Elbow L"), 0.5f, 0.01);
+
     config = env._rsc->getJointConfigAtTimestamp(t1 + (t2 - t1) * 0.7); // interpolated values
-    ARMARX_INFO_S << "value at t=0.7%: " << config["Elbow L"];
-    BOOST_CHECK_CLOSE(config["Elbow L"], 0.7f, 0.01);
+    ARMARX_INFO_S << "value at t=0.7%: " << config.at("Elbow L");
+    BOOST_CHECK_CLOSE(config.at("Elbow L"), 0.7f, 0.01);
 }