diff --git a/test/Makefile.am b/test/Makefile.am
index 3d63748..26a6aa3 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -7,6 +7,7 @@
 test_SOURCES = \
 	test_util.cpp \
 	mock_syscall.cpp \
+	global_network_objects.cpp \
 	test_neighbor.cpp \
 	test_netlink.cpp \
 	test_network_manager.cpp \
diff --git a/test/global_network_objects.cpp b/test/global_network_objects.cpp
new file mode 100644
index 0000000..1aa71b7
--- /dev/null
+++ b/test/global_network_objects.cpp
@@ -0,0 +1,32 @@
+#include "mock_network_manager.hpp"
+#include "types.hpp"
+
+#include <sdeventplus/event.hpp>
+
+namespace phosphor
+{
+
+namespace network
+{
+
+std::unique_ptr<MockManager> manager = nullptr;
+std::unique_ptr<Timer> refreshObjectTimer = nullptr;
+std::unique_ptr<Timer> restartTimer = nullptr;
+
+/** @brief refresh the network objects. */
+void refreshObjects()
+{
+    if (manager)
+    {
+        manager->createChildObjects();
+    }
+}
+
+void initializeTimers()
+{
+    refreshObjectTimer = std::make_unique<Timer>(
+        sdeventplus::Event::get_default(), std::bind(refreshObjects));
+}
+
+} // namespace network
+} // namespace phosphor
diff --git a/test/mock_network_manager.hpp b/test/mock_network_manager.hpp
index b4a6894..1fc3f9b 100644
--- a/test/mock_network_manager.hpp
+++ b/test/mock_network_manager.hpp
@@ -12,6 +12,9 @@
 namespace network
 {
 
+void initializeTimers();
+void refreshObjects();
+
 class MockManager : public phosphor::network::Manager
 {
   public:
diff --git a/test/test_network_manager.cpp b/test/test_network_manager.cpp
index df7db77..48da2f2 100644
--- a/test/test_network_manager.cpp
+++ b/test/test_network_manager.cpp
@@ -18,9 +18,6 @@
 namespace network
 {
 
-std::unique_ptr<Timer> refreshObjectTimer = nullptr;
-std::unique_ptr<Timer> restartTimer = nullptr;
-
 namespace fs = std::filesystem;
 
 class TestNetworkManager : public testing::Test
diff --git a/test/test_rtnetlink.cpp b/test/test_rtnetlink.cpp
index 6a8c02d..47ccecf 100644
--- a/test/test_rtnetlink.cpp
+++ b/test/test_rtnetlink.cpp
@@ -19,26 +19,11 @@
 namespace network
 {
 sdbusplus::bus::bus bus(sdbusplus::bus::new_default());
-std::unique_ptr<MockManager> manager = nullptr;
+extern std::unique_ptr<MockManager> manager;
 extern std::unique_ptr<Timer> refreshObjectTimer;
 extern std::unique_ptr<Timer> restartTimer;
 EventPtr eventPtr = nullptr;
 
-/** @brief refresh the network objects. */
-void refreshObjects()
-{
-    if (manager)
-    {
-        manager->createChildObjects();
-    }
-}
-
-void initializeTimers()
-{
-    refreshObjectTimer = std::make_unique<Timer>(
-        sdeventplus::Event::get_default(), std::bind(refreshObjects));
-}
-
 class TestRtNetlink : public testing::Test
 {
 
