diff --git a/test/MessageParser.cpp b/test/MessageParser.cpp
index f74f44519560cf4c7c2ccc16bbf17217e190b0b7..bdba5b794d39835ec241967219012cafded387e6 100644
--- a/test/MessageParser.cpp
+++ b/test/MessageParser.cpp
@@ -40,9 +40,10 @@ TEST_CASE("TC Message parsing into a string", "[MessageParser]") {
 	CHECK(createdPacket.size() == 18);
 	CHECK(memcmp(createdPacket.data(), wantedPacket, 16) == 0);
 
-	uint16_t crcField = CRCHelper::calculateCRC(wantedPacket, 16);
-	uint16_t calculatedCRC = (static_cast<uint16_t>(createdPacket.data()[16]) << 0x8U) | (static_cast<uint16_t>(createdPacket.data()[17]) & 0xFF);
-	CHECK(calculatedCRC == crcField);
+	createdPacket.data();
+	const uint8_t* packet = reinterpret_cast<uint8_t*>(&createdPacket.data()[0]);
+	uint8_t crc_verification = CRCHelper::validateCRC(packet, 18);
+	CHECK(crc_verification == 0);
 #else
 	CHECK(createdPacket.size() == 16);
 	// The two parentheses are necessary so that Catch2 doesn't try to parse the strings here
@@ -82,10 +83,9 @@ TEST_CASE("TM Message parsing into a string", "[MessageParser]") {
 	CHECK(createdPacket.size() == 20);
 	CHECK(memcmp(createdPacket.data(), wantedPacket, 18) == 0);
 
-	uint16_t crcField = CRCHelper::calculateCRC(wantedPacket, 18);
-	uint16_t calculatedCRC = (static_cast<uint16_t>(createdPacket.data()[18]) << 0x8U) | (static_cast<uint16_t>
-		(createdPacket.data()[19]) & 0xFFU);
-	CHECK(calculatedCRC == crcField);
+	const uint8_t* packet = reinterpret_cast<uint8_t*>(&createdPacket.data()[0]);
+	uint8_t crc_verification = CRCHelper::validateCRC(packet, 20);
+	CHECK(crc_verification == 0);
 #else
 	CHECK(createdPacket.size() == 18);
 	// The two parentheses are necessary so that Catch2 doesn't try to parse the strings here