diff --git a/tools/test/tools_helper_unittest.cpp b/tools/test/tools_helper_unittest.cpp
index 2bee66d..cfe5208 100644
--- a/tools/test/tools_helper_unittest.cpp
+++ b/tools/test/tools_helper_unittest.cpp
@@ -1,5 +1,6 @@
 #include "helper.hpp"
 #include "status.hpp"
+#include "tool_errors.hpp"
 
 #include <blobs-ipmid/blobs.hpp>
 #include <ipmiblob/test/blob_interface_mock.hpp>
@@ -30,7 +31,7 @@
     EXPECT_CALL(blobMock, getStat(TypedEq<std::uint16_t>(session)))
         .WillOnce(Return(verificationResponse));
 
-    EXPECT_TRUE(pollStatus(session, &blobMock));
+    EXPECT_NO_THROW(pollStatus(session, &blobMock));
 }
 
 TEST_F(HelperTest, PollStatusReturnsAfterFailure)
@@ -43,7 +44,7 @@
     EXPECT_CALL(blobMock, getStat(TypedEq<std::uint16_t>(session)))
         .WillOnce(Return(verificationResponse));
 
-    EXPECT_FALSE(pollStatus(session, &blobMock));
+    EXPECT_THROW(pollStatus(session, &blobMock), ToolException);
 }
 
 TEST_F(HelperTest, PollReadReadyReturnsAfterSuccess)
@@ -56,7 +57,7 @@
     EXPECT_CALL(blobMock, getStat(TypedEq<std::uint16_t>(session)))
         .WillOnce(Return(blobResponse));
 
-    EXPECT_TRUE(pollReadReady(session, &blobMock).first);
+    EXPECT_NO_THROW(pollReadReady(session, &blobMock));
 }
 
 TEST_F(HelperTest, PollReadReadyReturnsAfterFailure)
@@ -68,7 +69,7 @@
     EXPECT_CALL(blobMock, getStat(TypedEq<std::uint16_t>(session)))
         .WillOnce(Return(blobResponse));
 
-    EXPECT_FALSE(pollReadReady(session, &blobMock).first);
+    EXPECT_THROW(pollReadReady(session, &blobMock), ToolException);
 }
 
 TEST_F(HelperTest, PollReadReadyReturnsAfterRetrySuccess)
@@ -85,7 +86,7 @@
         .WillOnce(Return(blobResponseRunning))
         .WillOnce(Return(blobResponseReadReady));
 
-    EXPECT_TRUE(pollReadReady(session, &blobMock).first);
+    EXPECT_NO_THROW(pollReadReady(session, &blobMock));
 }
 
 TEST_F(HelperTest, PollReadReadyReturnsAfterRetryFailure)
@@ -102,7 +103,7 @@
         .WillOnce(Return(blobResponseRunning))
         .WillOnce(Return(blobResponseError));
 
-    EXPECT_FALSE(pollReadReady(session, &blobMock).first);
+    EXPECT_THROW(pollReadReady(session, &blobMock), ToolException);
 }
 
 TEST_F(HelperTest, MemcpyAlignedOneByte)
diff --git a/tools/test/tools_updater_unittest.cpp b/tools/test/tools_updater_unittest.cpp
index 60cc077..40b6798 100644
--- a/tools/test/tools_updater_unittest.cpp
+++ b/tools/test/tools_updater_unittest.cpp
@@ -210,9 +210,9 @@
                  ToolException);
 }
 
-TEST_F(UpdateHandlerTest, ReadVersionReturnsEmptyIfPollingFails)
+TEST_F(UpdateHandlerTest, ReadVersionReturnsErrorIfPollingFails)
 {
-    /* It can return an empty result, when polling fails. */
+    /* It can throw an error, when polling fails. */
     EXPECT_CALL(blobMock, openBlob(ipmi_flash::biosVersionBlobId, _))
         .WillOnce(Return(session));
     ipmiblob::StatResponse readVersionResponse = {};
@@ -220,7 +220,8 @@
     EXPECT_CALL(blobMock, getStat(TypedEq<std::uint16_t>(session)))
         .WillOnce(Return(readVersionResponse));
     EXPECT_CALL(blobMock, closeBlob(session)).WillOnce(Return());
-    EXPECT_THAT(updater.readVersion(ipmi_flash::biosVersionBlobId), IsEmpty());
+    EXPECT_THROW(updater.readVersion(ipmi_flash::biosVersionBlobId),
+                 ToolException);
 }
 
 TEST_F(UpdateHandlerTest, ReadVersionCovertsOpenBlobExceptionToToolException)
