diff --git a/bmc/firmware-handler/test/crc_mock.hpp b/bmc/firmware-handler/test/crc_mock.hpp
index 293ec24..c33188d 100644
--- a/bmc/firmware-handler/test/crc_mock.hpp
+++ b/bmc/firmware-handler/test/crc_mock.hpp
@@ -18,6 +18,6 @@
 {
   public:
     virtual ~CrcMock() = default;
-    MOCK_CONST_METHOD1(generateCrc,
-                       std::uint16_t(const std::vector<std::uint8_t>&));
+    MOCK_METHOD(std::uint16_t, generateCrc, (const std::vector<std::uint8_t>&),
+                (const, override));
 };
diff --git a/bmc/firmware-handler/test/data_mock.hpp b/bmc/firmware-handler/test/data_mock.hpp
index c8109ad..ad41e63 100644
--- a/bmc/firmware-handler/test/data_mock.hpp
+++ b/bmc/firmware-handler/test/data_mock.hpp
@@ -12,11 +12,13 @@
   public:
     virtual ~DataHandlerMock() = default;
 
-    MOCK_METHOD0(open, bool());
-    MOCK_METHOD0(close, bool());
-    MOCK_METHOD1(copyFrom, std::vector<std::uint8_t>(std::uint32_t));
-    MOCK_METHOD1(writeMeta, bool(const std::vector<std::uint8_t>&));
-    MOCK_METHOD0(readMeta, std::vector<std::uint8_t>());
+    MOCK_METHOD(bool, open, (), (override));
+    MOCK_METHOD(bool, close, (), (override));
+    MOCK_METHOD(std::vector<std::uint8_t>, copyFrom, (std::uint32_t),
+                (override));
+    MOCK_METHOD(bool, writeMeta, (const std::vector<std::uint8_t>&),
+                (override));
+    MOCK_METHOD(std::vector<std::uint8_t>, readMeta, (), (override));
 };
 
 } // namespace ipmi_flash
diff --git a/bmc/firmware-handler/test/window_mapper_mock.hpp b/bmc/firmware-handler/test/window_mapper_mock.hpp
index dd3a89b..3983943 100644
--- a/bmc/firmware-handler/test/window_mapper_mock.hpp
+++ b/bmc/firmware-handler/test/window_mapper_mock.hpp
@@ -16,9 +16,10 @@
   public:
     virtual ~HardwareInterfaceMock() = default;
 
-    MOCK_METHOD0(open, MemorySet());
-    MOCK_METHOD0(close, ());
-    MOCK_METHOD2(mapWindow, WindowMapResult(std::uint32_t, std::uint32_t));
+    MOCK_METHOD(MemorySet, open, (), (override));
+    MOCK_METHOD(void, close, (), (override));
+    MOCK_METHOD(WindowMapResult, mapWindow, (std::uint32_t, std::uint32_t),
+                (override));
 };
 
 } // namespace ipmi_flash
