diff --git a/test/mock_ethernet_interface.hpp b/test/mock_ethernet_interface.hpp
index a0358ed..5e21170 100644
--- a/test/mock_ethernet_interface.hpp
+++ b/test/mock_ethernet_interface.hpp
@@ -13,9 +13,9 @@
 {
   public:
     MockEthernetInterface(sdbusplus::bus_t& bus, const std::string& objPath,
-                          const config::Parser& config, DHCPConf dhcpEnabled,
-                          Manager& parent, bool emitSignal) :
-        EthernetInterface(bus, objPath, config, dhcpEnabled, parent, emitSignal,
+                          const config::Parser& config, Manager& parent,
+                          bool emitSignal) :
+        EthernetInterface(bus, objPath, config, parent, emitSignal,
                           /*nicEnabled=*/true)
     {
     }
diff --git a/test/mock_network_manager.hpp b/test/mock_network_manager.hpp
index 46c7c4b..fde3bbd 100644
--- a/test/mock_network_manager.hpp
+++ b/test/mock_network_manager.hpp
@@ -34,8 +34,7 @@
             config::Parser config(config::pathForIntfConf(confDir, interface));
             auto intf =
                 std::make_shared<phosphor::network::MockEthernetInterface>(
-                    bus, objPath.string(), config, getDHCPValue(config), *this,
-                    true);
+                    bus, objPath.string(), config, *this, true);
             intf->createIPAddressObjects();
             intf->createStaticNeighborObjects();
             intf->loadNameServers(config);
diff --git a/test/test_ethernet_interface.cpp b/test/test_ethernet_interface.cpp
index ac96190..0893147 100644
--- a/test/test_ethernet_interface.cpp
+++ b/test/test_ethernet_interface.cpp
@@ -43,12 +43,8 @@
     {
         mock_clear();
         mock_addIF("test0", 1, mac);
-        return {bus,
-                "/xyz/openbmc_test/network/test0",
-                config::Parser(),
-                EthernetInterface::DHCPConf::none,
-                manager,
-                true};
+        return {bus, "/xyz/openbmc_test/network/test0", config::Parser(),
+                manager, true};
     }
 
     int countIPObjects()
diff --git a/test/test_vlan_interface.cpp b/test/test_vlan_interface.cpp
index 8d31c7b..c4734b1 100644
--- a/test/test_vlan_interface.cpp
+++ b/test/test_vlan_interface.cpp
@@ -44,7 +44,6 @@
         return {bus,
                 "/xyz/openbmc_test/network/test0",
                 config::Parser(),
-                EthernetInterface::DHCPConf::none,
                 manager,
                 false,
                 true};
