diff --git a/test/http/crow_getroutes_test.cpp b/test/http/crow_getroutes_test.cpp
index 23a511e..e5c9d6e 100644
--- a/test/http/crow_getroutes_test.cpp
+++ b/test/http/crow_getroutes_test.cpp
@@ -20,6 +20,7 @@
 namespace
 {
 
+using ::bmcweb::AsyncResp;
 using ::testing::Eq;
 using ::testing::IsEmpty;
 using ::testing::Pointee;
@@ -38,7 +39,9 @@
 {
     App app;
 
-    BMCWEB_ROUTE(app, "/")([]() { return boost::beast::http::status::ok; });
+    BMCWEB_ROUTE(app, "/")
+    ([](const crow::Request& /*req*/,
+        const std::shared_ptr<AsyncResp>& /*asyncResp*/) {});
 
     // TODO: "/" doesn't get reported in |getRoutes| today. Uncomment this once
     // it is fixed
@@ -50,12 +53,18 @@
 TEST(GetRoutes, TestlotsOfRoutes)
 {
     App app;
-    BMCWEB_ROUTE(app, "/")([]() { return boost::beast::http::status::ok; });
-    BMCWEB_ROUTE(app, "/foo")([]() { return boost::beast::http::status::ok; });
-    BMCWEB_ROUTE(app, "/bar")([]() { return boost::beast::http::status::ok; });
-    BMCWEB_ROUTE(app, "/baz")([]() { return boost::beast::http::status::ok; });
-    BMCWEB_ROUTE(app, "/boo")([]() { return boost::beast::http::status::ok; });
-    BMCWEB_ROUTE(app, "/moo")([]() { return boost::beast::http::status::ok; });
+    BMCWEB_ROUTE(app, "/")
+    ([](const Request& /*req*/, const std::shared_ptr<AsyncResp>& /*res*/) {});
+    BMCWEB_ROUTE(app, "/foo")
+    ([](const Request& /*req*/, const std::shared_ptr<AsyncResp>& /*res*/) {});
+    BMCWEB_ROUTE(app, "/bar")
+    ([](const Request& /*req*/, const std::shared_ptr<AsyncResp>& /*res*/) {});
+    BMCWEB_ROUTE(app, "/baz")
+    ([](const Request& /*req*/, const std::shared_ptr<AsyncResp>& /*res*/) {});
+    BMCWEB_ROUTE(app, "/boo")
+    ([](const Request& /*req*/, const std::shared_ptr<AsyncResp>& /*res*/) {});
+    BMCWEB_ROUTE(app, "/moo")
+    ([](const Request& /*req*/, const std::shared_ptr<AsyncResp>& /*res*/) {});
 
     app.validate();
 
diff --git a/test/http/utility_test.cpp b/test/http/utility_test.cpp
index 957c13d..6726455 100644
--- a/test/http/utility_test.cpp
+++ b/test/http/utility_test.cpp
@@ -220,17 +220,9 @@
 
 TEST(Router, ParameterTagging)
 {
-    EXPECT_EQ(6 * 6 + 6 * 3 + 2, getParameterTag("<uint><double><int>"));
-    EXPECT_EQ(1, getParameterTag("<int>"));
-    EXPECT_EQ(2, getParameterTag("<uint>"));
-    EXPECT_EQ(3, getParameterTag("<float>"));
-    EXPECT_EQ(3, getParameterTag("<double>"));
-    EXPECT_EQ(4, getParameterTag("<str>"));
-    EXPECT_EQ(4, getParameterTag("<string>"));
-    EXPECT_EQ(5, getParameterTag("<path>"));
-    EXPECT_EQ(6 * 6 + 6 + 1, getParameterTag("<int><int><int>"));
-    EXPECT_EQ(6 * 6 + 6 + 2, getParameterTag("<uint><int><int>"));
-    EXPECT_EQ(6 * 6 + 6 * 3 + 2, getParameterTag("<uint><double><int>"));
+    EXPECT_EQ(1, getParameterTag("<str>"));
+    EXPECT_EQ(1, getParameterTag("<string>"));
+    EXPECT_EQ(2, getParameterTag("<path>"));
 }
 
 TEST(URL, JsonEncoding)
