diff --git a/tests/unit-tests/helper/ndn-global-routing-helper.t.cpp b/tests/unit-tests/helper/ndn-global-routing-helper.t.cpp
index 4cd6a04..40da7b9 100644
--- a/tests/unit-tests/helper/ndn-global-routing-helper.t.cpp
+++ b/tests/unit-tests/helper/ndn-global-routing-helper.t.cpp
@@ -92,8 +92,8 @@
   for (const auto& entry : ndn->getForwarder()->getFib()) {
     bool isFirst = true;
     for (auto& nextHop : entry.getNextHops()) {
-      auto face = nextHop.getFace();
-      auto linkService = dynamic_cast<NetDeviceLinkService*>(face->getLinkService());
+      auto& face = nextHop.getFace();
+      auto linkService = dynamic_cast<NetDeviceLinkService*>(face.getLinkService());
       if (linkService == nullptr)
         continue;
       BOOST_CHECK_EQUAL(Names::FindName(linkService->GetNetDevice()->GetChannel()->GetDevice(1)->GetNode()), "C1");
@@ -137,8 +137,8 @@
   for (const auto& entry : ndn->getForwarder()->getFib()) {
     bool isFirst = true;
     for (auto& nextHop : entry.getNextHops()) {
-      auto face = nextHop.getFace();
-      auto linkService = dynamic_cast<NetDeviceLinkService*>(face->getLinkService());
+      auto& face = nextHop.getFace();
+      auto linkService = dynamic_cast<NetDeviceLinkService*>(face.getLinkService());
       if (linkService == nullptr)
         continue;
       BOOST_CHECK_EQUAL(Names::FindName(linkService->GetNetDevice()->GetChannel()->GetDevice(1)->GetNode()), "B2");
