diff --git a/test/test_ethernet_interface.cpp b/test/test_ethernet_interface.cpp
index edc12fb..27fbb67 100644
--- a/test/test_ethernet_interface.cpp
+++ b/test/test_ethernet_interface.cpp
@@ -104,6 +104,27 @@
 
         }
 
+        // Validates if the DNS entries have been correctly processed
+        void validateResolvFile(ServerList values)
+        {
+            // Check whether the entries has been written to resolv.conf
+            fs::path resolvFile = confDir;
+            resolvFile /= "resolv.conf";
+
+            // Passed in "value" is what is read from the config file
+            interface.writeDNSEntries(values, resolvFile);
+            std::string expectedServers = "### Generated manually via dbus settings ###";
+            expectedServers +=
+                "nameserver 9.1.1.1nameserver 9.2.2.2nameserver 9.3.3.3";
+
+            std::string actualServers{};
+            std::fstream stream(resolvFile.string().c_str(), std::fstream::in);
+            for (std::string line; std::getline(stream, line);)
+            {
+                actualServers += line;
+            }
+            EXPECT_EQ(expectedServers , actualServers);
+        }
 };
 
 TEST_F(TestEthernetInterface, NoIPaddress)
@@ -169,6 +190,19 @@
                                                 gateway));
 }
 
+TEST_F(TestEthernetInterface, addNameServers)
+{
+    ServerList servers = {"9.1.1.1","9.2.2.2","9.3.3.3"};
+    interface.nameservers(servers);
+    fs::path filePath = confDir;
+    filePath /= "00-bmc-test0.network";
+    config::Parser parser(filePath.string());
+    auto values = parser.getValues("Network", "DNS");
+    EXPECT_EQ(servers , values);
+
+    validateResolvFile(values);
+}
+
 TEST_F(TestEthernetInterface, addNTPServers)
 {
     ServerList servers = {"10.1.1.1","10.2.2.2","10.3.3.3"};
