diff --git a/test/message/types.cpp b/test/message/types.cpp
index 5bb6aef..3bbd937 100644
--- a/test/message/types.cpp
+++ b/test/message/types.cpp
@@ -13,18 +13,18 @@
 
 TEST(MessageTypes, Integer)
 {
-    ASSERT_EQ(dbus_string(1), "i");
+    EXPECT_EQ(dbus_string(1), "i");
 }
 
 TEST(MessageTypes, Double)
 {
-    ASSERT_EQ(dbus_string(1.0), "d");
+    EXPECT_EQ(dbus_string(1.0), "d");
 }
 
 TEST(MessageTypes, MultipleParameter)
 {
-    ASSERT_EQ(dbus_string(false, true), "bb");
-    ASSERT_EQ(dbus_string(1, 2, 3, true, 1.0), "iiibd");
+    EXPECT_EQ(dbus_string(false, true), "bb");
+    EXPECT_EQ(dbus_string(1, 2, 3, true, 1.0), "iiibd");
 }
 
 TEST(MessageTypes, StringReferences)
@@ -33,59 +33,59 @@
     std::string b = "b";
     const char* c = "c";
 
-    ASSERT_EQ(dbus_string(a, std::move(b), c), "sss");
+    EXPECT_EQ(dbus_string(a, std::move(b), c), "sss");
 }
 
 TEST(MessageTypes, ObjectPath)
 {
-    ASSERT_EQ(dbus_string(sdbusplus::message::object_path("/asdf")), "o");
+    EXPECT_EQ(dbus_string(sdbusplus::message::object_path("/asdf")), "o");
 }
 
 TEST(MessageTypes, ObjectPathFilename)
 {
-    ASSERT_EQ(sdbusplus::message::object_path("/abc/def").filename(), "def");
-    ASSERT_EQ(sdbusplus::message::object_path("/abc/").filename(), "");
-    ASSERT_EQ(sdbusplus::message::object_path("/abc").filename(), "abc");
-    ASSERT_EQ(sdbusplus::message::object_path("/_61bc").filename(), "abc");
-    ASSERT_EQ(sdbusplus::message::object_path("/").filename(), "");
-    ASSERT_EQ(sdbusplus::message::object_path("").filename(), "");
-    ASSERT_EQ(sdbusplus::message::object_path("abc").filename(), "");
-    ASSERT_EQ(sdbusplus::message::object_path("/_2d").filename(), "-");
-    ASSERT_EQ(sdbusplus::message::object_path("/_20").filename(), " ");
-    ASSERT_EQ(sdbusplus::message::object_path("/_2F").filename(), "/");
-    ASSERT_EQ(sdbusplus::message::object_path("/bios_active").filename(),
+    EXPECT_EQ(sdbusplus::message::object_path("/abc/def").filename(), "def");
+    EXPECT_EQ(sdbusplus::message::object_path("/abc/").filename(), "");
+    EXPECT_EQ(sdbusplus::message::object_path("/abc").filename(), "abc");
+    EXPECT_EQ(sdbusplus::message::object_path("/_61bc").filename(), "abc");
+    EXPECT_EQ(sdbusplus::message::object_path("/").filename(), "");
+    EXPECT_EQ(sdbusplus::message::object_path("").filename(), "");
+    EXPECT_EQ(sdbusplus::message::object_path("abc").filename(), "");
+    EXPECT_EQ(sdbusplus::message::object_path("/_2d").filename(), "-");
+    EXPECT_EQ(sdbusplus::message::object_path("/_20").filename(), " ");
+    EXPECT_EQ(sdbusplus::message::object_path("/_2F").filename(), "/");
+    EXPECT_EQ(sdbusplus::message::object_path("/bios_active").filename(),
               "bios_active");
 }
 
 TEST(MessageTypes, ObjectPathParent)
 {
-    ASSERT_EQ(sdbusplus::message::object_path("/abc/def").parent_path(),
+    EXPECT_EQ(sdbusplus::message::object_path("/abc/def").parent_path(),
               sdbusplus::message::object_path("/abc"));
-    ASSERT_EQ(sdbusplus::message::object_path("/abc/").parent_path(),
+    EXPECT_EQ(sdbusplus::message::object_path("/abc/").parent_path(),
               sdbusplus::message::object_path("/abc"));
-    ASSERT_EQ(sdbusplus::message::object_path("/abc").parent_path(),
+    EXPECT_EQ(sdbusplus::message::object_path("/abc").parent_path(),
               sdbusplus::message::object_path("/"));
-    ASSERT_EQ(sdbusplus::message::object_path("/").parent_path(),
+    EXPECT_EQ(sdbusplus::message::object_path("/").parent_path(),
               sdbusplus::message::object_path("/"));
 }
 
 TEST(MessageTypes, ObjectPathOperatorSlash)
 {
-    ASSERT_EQ(sdbusplus::message::object_path("/") / "abc",
+    EXPECT_EQ(sdbusplus::message::object_path("/") / "abc",
               sdbusplus::message::object_path("/_61bc"));
-    ASSERT_EQ(sdbusplus::message::object_path("/abc") / "def",
+    EXPECT_EQ(sdbusplus::message::object_path("/abc") / "def",
               sdbusplus::message::object_path("/abc/_64ef"));
-    ASSERT_EQ(sdbusplus::message::object_path("/abc") / "-",
+    EXPECT_EQ(sdbusplus::message::object_path("/abc") / "-",
               sdbusplus::message::object_path("/abc/_2d"));
-    ASSERT_EQ(sdbusplus::message::object_path("/abc") / " ",
+    EXPECT_EQ(sdbusplus::message::object_path("/abc") / " ",
               sdbusplus::message::object_path("/abc/_20"));
-    ASSERT_EQ(sdbusplus::message::object_path("/abc") / "/",
+    EXPECT_EQ(sdbusplus::message::object_path("/abc") / "/",
               sdbusplus::message::object_path("/abc/_2f"));
-    ASSERT_EQ(sdbusplus::message::object_path("/abc") / "ab_cd",
+    EXPECT_EQ(sdbusplus::message::object_path("/abc") / "ab_cd",
               sdbusplus::message::object_path("/abc/_61b_5fcd"));
 
     // Test the std::string overload.  This is largely just for coverage
-    ASSERT_EQ(sdbusplus::message::object_path("/") / std::string("abc"),
+    EXPECT_EQ(sdbusplus::message::object_path("/") / std::string("abc"),
               sdbusplus::message::object_path("/_61bc"));
 }
 
@@ -93,28 +93,28 @@
 {
     sdbusplus::message::object_path path("/");
     path /= "abc";
-    ASSERT_EQ(path, sdbusplus::message::object_path("/_61bc"));
+    EXPECT_EQ(path, sdbusplus::message::object_path("/_61bc"));
 
     sdbusplus::message::object_path path2("/");
     path2 /= std::string("def");
-    ASSERT_EQ(path2, sdbusplus::message::object_path("/_64ef"));
+    EXPECT_EQ(path2, sdbusplus::message::object_path("/_64ef"));
 }
 
 TEST(MessageTypes, Signature)
 {
-    ASSERT_EQ(dbus_string(sdbusplus::message::signature("sss")), "g");
+    EXPECT_EQ(dbus_string(sdbusplus::message::signature("sss")), "g");
 }
 
 TEST(MessageTypes, VectorOfString)
 {
     std::vector<std::string> s = {"a", "b"};
 
-    ASSERT_EQ(dbus_string(s), "as");
+    EXPECT_EQ(dbus_string(s), "as");
 }
 
 TEST(MessageTypes, SetOfString)
 {
     std::set<std::string> s = {"a", "b"};
 
-    ASSERT_EQ(dbus_string(s), "as");
+    EXPECT_EQ(dbus_string(s), "as");
 }
