diff --git a/tests/daemon/mgmt/face-manager.t.cpp b/tests/daemon/mgmt/face-manager.t.cpp
index 8a418e5..0930374 100644
--- a/tests/daemon/mgmt/face-manager.t.cpp
+++ b/tests/daemon/mgmt/face-manager.t.cpp
@@ -46,8 +46,7 @@
 {
 public:
   FaceManagerFixture()
-    : m_faceTable(m_forwarder.getFaceTable())
-    , m_faceSystem(m_faceTable, make_shared<ndn::net::NetworkMonitorStub>(0))
+    : m_faceSystem(m_faceTable, make_shared<ndn::net::NetworkMonitorStub>(0))
     , m_manager(m_faceSystem, m_dispatcher, *m_authenticator)
   {
     setTopPrefix();
@@ -113,7 +112,6 @@
   }
 
 protected:
-  FaceTable& m_faceTable;
   FaceSystem m_faceSystem;
   FaceManager m_manager;
 };
diff --git a/tests/daemon/mgmt/fib-manager.t.cpp b/tests/daemon/mgmt/fib-manager.t.cpp
index 4907a61..048f76d 100644
--- a/tests/daemon/mgmt/fib-manager.t.cpp
+++ b/tests/daemon/mgmt/fib-manager.t.cpp
@@ -40,7 +40,6 @@
 public:
   FibManagerFixture()
     : m_fib(m_forwarder.getFib())
-    , m_faceTable(m_forwarder.getFaceTable())
     , m_manager(m_fib, m_faceTable, m_dispatcher, *m_authenticator)
   {
     setTopPrefix();
@@ -126,7 +125,6 @@
 
 protected:
   Fib&       m_fib;
-  FaceTable& m_faceTable;
   FibManager m_manager;
 };
 
@@ -144,8 +142,7 @@
     return os << "NO_NEXTHOP";
   case FibManagerFixture::CheckNextHopResult::WRONG_COST:
     return os << "WRONG_COST";
-  };
-
+  }
   return os << static_cast<int>(result);
 }
 
diff --git a/tests/daemon/mgmt/forwarder-status-manager.t.cpp b/tests/daemon/mgmt/forwarder-status-manager.t.cpp
index e40e20d..132375a 100644
--- a/tests/daemon/mgmt/forwarder-status-manager.t.cpp
+++ b/tests/daemon/mgmt/forwarder-status-manager.t.cpp
@@ -35,13 +35,15 @@
 {
 protected:
   ForwarderStatusManagerFixture()
-    : m_manager(m_forwarder, m_dispatcher)
+    : m_forwarder(m_faceTable)
+    , m_manager(m_forwarder, m_dispatcher)
     , m_startTime(time::system_clock::now())
   {
     setTopPrefix();
   }
 
 protected:
+  FaceTable m_faceTable;
   Forwarder m_forwarder;
   ForwarderStatusManager m_manager;
   time::system_clock::TimePoint m_startTime;
diff --git a/tests/daemon/mgmt/manager-common-fixture.hpp b/tests/daemon/mgmt/manager-common-fixture.hpp
index b5bae0d..3557627 100644
--- a/tests/daemon/mgmt/manager-common-fixture.hpp
+++ b/tests/daemon/mgmt/manager-common-fixture.hpp
@@ -171,7 +171,8 @@
   setPrivilege(const std::string& privilege);
 
 protected:
-  Forwarder m_forwarder;
+  FaceTable m_faceTable;
+  Forwarder m_forwarder{m_faceTable};
   shared_ptr<CommandAuthenticator> m_authenticator = CommandAuthenticator::create();
 };
 
diff --git a/tests/daemon/mgmt/tables-config-section.t.cpp b/tests/daemon/mgmt/tables-config-section.t.cpp
index cfcc3ba..dfce51e 100644
--- a/tests/daemon/mgmt/tables-config-section.t.cpp
+++ b/tests/daemon/mgmt/tables-config-section.t.cpp
@@ -40,7 +40,8 @@
 {
 protected:
   TablesConfigSectionFixture()
-    : cs(forwarder.getCs())
+    : forwarder(faceTable)
+    , cs(forwarder.getCs())
     , strategyChoice(forwarder.getStrategyChoice())
     , networkRegionTable(forwarder.getNetworkRegionTable())
     , tablesConfig(forwarder)
@@ -62,6 +63,7 @@
   }
 
 protected:
+  FaceTable faceTable;
   Forwarder forwarder;
   Cs& cs;
   StrategyChoice& strategyChoice;
