diff --git a/tests/unit/mgmt/nfd/status-dataset.t.cpp b/tests/unit/mgmt/nfd/status-dataset.t.cpp
index 44fca44..21fb288 100644
--- a/tests/unit/mgmt/nfd/status-dataset.t.cpp
+++ b/tests/unit/mgmt/nfd/status-dataset.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2013-2020 Regents of the University of California.
+ * Copyright (c) 2013-2021 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -113,7 +113,7 @@
   CommandOptions options;
   options.setTimeout(3000_ms);
   controller.fetch<FaceDataset>(
-    [] (const std::vector<FaceStatus>& result) { BOOST_FAIL("fetchDataset should not succeed"); },
+    [] (auto&&) { BOOST_FAIL("fetchDataset should not succeed"); },
     datasetFailCallback,
     options);
   this->advanceClocks(500_ms);
@@ -128,7 +128,7 @@
 BOOST_AUTO_TEST_CASE(DataHasNoSegment)
 {
   controller.fetch<FaceDataset>(
-    [] (const std::vector<FaceStatus>& result) { BOOST_FAIL("fetchDataset should not succeed"); },
+    [] (auto&&) { BOOST_FAIL("fetchDataset should not succeed"); },
     datasetFailCallback);
   this->advanceClocks(500_ms);
 
@@ -146,7 +146,7 @@
   this->setValidationResult(false);
 
   controller.fetch<FaceDataset>(
-    [] (const std::vector<FaceStatus>& result) { BOOST_FAIL("fetchDataset should not succeed"); },
+    [] (auto&&) { BOOST_FAIL("fetchDataset should not succeed"); },
     datasetFailCallback);
   this->advanceClocks(500_ms);
 
@@ -162,7 +162,7 @@
 BOOST_AUTO_TEST_CASE(Nack)
 {
   controller.fetch<FaceDataset>(
-    [] (const std::vector<FaceStatus>& result) { BOOST_FAIL("fetchDataset should not succeed"); },
+    [] (auto&&) { BOOST_FAIL("fetchDataset should not succeed"); },
     datasetFailCallback);
   this->advanceClocks(500_ms);
 
@@ -177,7 +177,7 @@
 BOOST_AUTO_TEST_CASE(ParseError1)
 {
   controller.fetch<FaceDataset>(
-    [] (const std::vector<FaceStatus>& result) { BOOST_FAIL("fetchDataset should not succeed"); },
+    [] (auto&&) { BOOST_FAIL("fetchDataset should not succeed"); },
     datasetFailCallback);
   this->advanceClocks(500_ms);
 
@@ -192,7 +192,7 @@
 BOOST_AUTO_TEST_CASE(ParseError2)
 {
   controller.fetch<FaceDataset>(
-    [] (const std::vector<FaceStatus>& result) { BOOST_FAIL("fetchDataset should not succeed"); },
+    [] (auto&&) { BOOST_FAIL("fetchDataset should not succeed"); },
     datasetFailCallback);
   this->advanceClocks(500_ms);
 
@@ -232,7 +232,7 @@
   CommandOptions options;
   options.setTimeout(3000_ms);
   controller.fetch<FaceDataset>(
-    [] (const std::vector<FaceStatus>& result) { BOOST_FAIL("fetchDataset should not succeed"); },
+    [] (auto&&) { BOOST_FAIL("fetchDataset should not succeed"); },
     nullptr,
     options);
   BOOST_CHECK_NO_THROW(this->advanceClocks(500_ms, 7));
@@ -301,7 +301,7 @@
   this->advanceClocks(500_ms);
 
   Name prefix("/localhost/nfd/faces/query");
-  prefix.append(filter.wireEncode());
+  prefix.append(filter.wireEncode().begin(), filter.wireEncode().end());
   FaceStatus payload;
   payload.setFaceId(8795);
   this->sendDataset(prefix, payload);
@@ -330,7 +330,7 @@
   this->advanceClocks(500_ms);
 
   Name prefix("/localhost/nfd/faces/query");
-  prefix.append(filter.wireEncode());
+  prefix.append(filter.wireEncode().begin(), filter.wireEncode().end());
   FaceStatus payload;
   payload.setFaceId(14022);
   this->sendDataset(prefix, payload);
