diff --git a/tests/daemon/face/tcp-transport.t.cpp b/tests/daemon/face/tcp-transport.t.cpp
index 81da009..1ad0b70 100644
--- a/tests/daemon/face/tcp-transport.t.cpp
+++ b/tests/daemon/face/tcp-transport.t.cpp
@@ -74,17 +74,17 @@
   TRANSPORT_TEST_INIT(ndn::nfd::FACE_PERSISTENCY_PERMANENT);
 
   transport->afterStateChange.connectSingleShot(
-    [this] (TransportState oldState, TransportState newState) {
+    [this] (auto oldState, auto newState) {
       BOOST_CHECK_EQUAL(oldState, TransportState::UP);
       BOOST_CHECK_EQUAL(newState, TransportState::DOWN);
-      limitedIo.afterOp();
+      this->limitedIo.afterOp();
     });
   remoteSocket.close();
   BOOST_REQUIRE_EQUAL(limitedIo.run(1, 1_s), LimitedIo::EXCEED_OPS);
 
   bool didStateChange = false;
   transport->afterStateChange.connectSingleShot(
-    [&didStateChange] (TransportState oldState, TransportState newState) {
+    [&didStateChange] (auto oldState, auto newState) {
       didStateChange = true;
       BOOST_CHECK_EQUAL(oldState, TransportState::DOWN);
       BOOST_CHECK_EQUAL(newState, TransportState::FAILED);
@@ -98,7 +98,7 @@
   TRANSPORT_TEST_INIT(ndn::nfd::FACE_PERSISTENCY_PERMANENT);
 
   this->transport->afterStateChange.connectSingleShot(
-    [this] (TransportState oldState, TransportState newState) {
+    [this] (auto oldState, auto newState) {
       BOOST_CHECK_EQUAL(oldState, TransportState::UP);
       BOOST_CHECK_EQUAL(newState, TransportState::DOWN);
       this->limitedIo.afterOp();
@@ -107,7 +107,7 @@
   BOOST_REQUIRE_EQUAL(this->limitedIo.run(1, 1_s), LimitedIo::EXCEED_OPS);
 
   this->transport->afterStateChange.connectSingleShot(
-    [this] (TransportState oldState, TransportState newState) {
+    [this] (auto oldState, auto newState) {
       BOOST_CHECK_EQUAL(oldState, TransportState::DOWN);
       BOOST_CHECK_EQUAL(newState, TransportState::UP);
       this->limitedIo.afterOp();
@@ -156,7 +156,7 @@
 };
 
 static double
-asFloatMilliseconds(const time::nanoseconds& t)
+asFloatMilliseconds(time::nanoseconds t)
 {
   return static_cast<double>(t.count()) / 1000000.0;
 }
