diff --git a/tests/block-literal.hpp b/tests/block-literal.hpp
deleted file mode 100644
index d36675e..0000000
--- a/tests/block-literal.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2013-2018 Regents of the University of California.
- *
- * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
- *
- * ndn-cxx library is free software: you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later version.
- *
- * ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
- *
- * You should have received copies of the GNU General Public License and GNU Lesser
- * General Public License along with ndn-cxx, e.g., in COPYING.md file.  If not, see
- * <http://www.gnu.org/licenses/>.
- *
- * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
- */
-
-#ifndef NAC_TESTS_BLOCK_LITERAL_HPP
-#define NAC_TESTS_BLOCK_LITERAL_HPP
-
-#include <ndn-cxx/encoding/block.hpp>
-#include <ndn-cxx/encoding/buffer-stream.hpp>
-#include <ndn-cxx/security/transform.hpp>
-
-namespace ndn {
-namespace nac {
-namespace tests {
-
-/** \brief Construct a \c Block from hexadecimal \p input.
- *  \param input a string containing hexadecimal bytes and comments.
- *               0-9 and upper-case A-F are input; all other characters are comments.
- *  \param len length of \p input.
- *  \throw security::transform::Error input has odd number of hexadecimal digits.
- *  \throw tlv::Error input cannot be parsed into valid \c Block.
- *
- *  Example
- *  \code
- *  Block nameBlock = "0706 080141 080142"_block;
- *  Block nackBlock = "FD032005 reason(no-route)=FD03210196"_block;
- *  \endcode
- */
-inline Block
-operator "" _block(const char* input, std::size_t len)
-{
-  namespace t = ndn::security::transform;
-  t::StepSource ss;
-  OBufferStream os;
-  ss >> t::hexDecode() >> t::streamSink(os);
-
-  for (const char* end = input + len; input != end; ++input) {
-    if (std::strchr("0123456789ABCDEF", *input) != nullptr) {
-      ss.write(reinterpret_cast<const uint8_t*>(input), 1);
-    }
-  }
-  ss.end();
-
-  return Block(os.buf());
-}
-
-} // namespace tests
-} // namespace nac
-} // namespace ndn
-
-#endif // NAC_TESTS_BLOCK_LITERAL_HPP
diff --git a/tests/boost-test.hpp b/tests/boost-test.hpp
index a19590e..dbc5ceb 100644
--- a/tests/boost-test.hpp
+++ b/tests/boost-test.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2018, Regents of the University of California
+/*
+ * Copyright (c) 2014-2020, Regents of the University of California
  *
  * NAC library is free software: you can redistribute it and/or modify it under the
  * terms of the GNU Lesser General Public License as published by the Free Software
@@ -24,8 +24,7 @@
 #pragma GCC system_header
 #pragma clang system_header
 
-#include <boost/concept_check.hpp>
-#include <boost/test/output_test_stream.hpp>
+#define BOOST_TEST_DYN_LINK
 #include <boost/test/unit_test.hpp>
 
 #endif // NDN_NAC_TESTS_BOOST_TEST_HPP
diff --git a/tests/main.cpp b/tests/main.cpp
index cef5c60..d9476dc 100644
--- a/tests/main.cpp
+++ b/tests/main.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2018, Regents of the University of California
+/*
+ * Copyright (c) 2014-2020, Regents of the University of California
  *
  * NAC library is free software: you can redistribute it and/or modify it under the
  * terms of the GNU Lesser General Public License as published by the Free Software
@@ -17,9 +17,7 @@
  * See AUTHORS.md for complete list of NAC library authors and contributors.
  */
 
-#define BOOST_TEST_MODULE NAC Tests
-#define BOOST_TEST_DYN_LINK
-#define BOOST_TEST_ALTERNATIVE_INIT_API
+#define BOOST_TEST_MODULE NAC Unit Tests
 
 #include <boost/version.hpp>
 
@@ -27,9 +25,9 @@
 // Boost.Test v3.3 (Boost 1.62) natively supports multi-logger output
 #include "boost-test.hpp"
 #else
+#define BOOST_TEST_ALTERNATIVE_INIT_API
 #define BOOST_TEST_NO_MAIN
 #include "boost-test.hpp"
-
 #include "boost-multi-log-formatter.hpp"
 
 #include <boost/program_options/options_description.hpp>
diff --git a/tests/tests-common.hpp b/tests/tests-common.hpp
deleted file mode 100644
index 40130c8..0000000
--- a/tests/tests-common.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2018, Regents of the University of California
- *
- * NAC library is free software: you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later version.
- *
- * NAC library is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
- *
- * You should have received copies of the GNU General Public License and GNU Lesser
- * General Public License along with ndn-cxx, e.g., in COPYING.md file.  If not, see
- * <http://www.gnu.org/licenses/>.
- *
- * See AUTHORS.md for complete list of NAC library authors and contributors.
- */
-
-#ifndef NAC_TESTS_TEST_COMMON_HPP
-#define NAC_TESTS_TEST_COMMON_HPP
-
-#include "boost-test.hpp"
-#include "unit-test-common-fixtures.hpp"
-#include "identity-management-fixture.hpp"
-#include "block-literal.hpp"
-
-namespace ndn {
-namespace nac {
-namespace tests {
-
-} // namespace tests
-} // namespace nac
-} // namespace ndn
-
-#endif // NAC_TESTS_TEST_COMMON_HPP
diff --git a/tests/tests/access-manager.t.cpp b/tests/tests/access-manager.t.cpp
index f97514a..b290960 100644
--- a/tests/tests/access-manager.t.cpp
+++ b/tests/tests/access-manager.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2018, Regents of the University of California
+/*
+ * Copyright (c) 2014-2020, Regents of the University of California
  *
  * NAC library is free software: you can redistribute it and/or modify it under the
  * terms of the GNU Lesser General Public License as published by the Free Software
@@ -19,8 +19,9 @@
 
 #include "access-manager.hpp"
 
-#include "tests-common.hpp"
+#include "boost-test.hpp"
 #include "dummy-forwarder.hpp"
+#include "unit-test-common-fixtures.hpp"
 
 #include <iostream>
 #include <ndn-cxx/util/string-helper.hpp>
diff --git a/tests/tests/decryptor.t.cpp b/tests/tests/decryptor.t.cpp
index 88bda75..cf6b44e 100644
--- a/tests/tests/decryptor.t.cpp
+++ b/tests/tests/decryptor.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2018, Regents of the University of California
+/*
+ * Copyright (c) 2014-2020, Regents of the University of California
  *
  * NAC library is free software: you can redistribute it and/or modify it under the
  * terms of the GNU Lesser General Public License as published by the Free Software
@@ -23,9 +23,10 @@
 #include "encrypted-content.hpp"
 #include "access-manager.hpp"
 
-#include "tests-common.hpp"
+#include "boost-test.hpp"
 #include "dummy-forwarder.hpp"
 #include "static-data.hpp"
+#include "unit-test-common-fixtures.hpp"
 
 #include <iostream>
 #include <boost/mpl/vector.hpp>
diff --git a/tests/tests/encrypted-content.t.cpp b/tests/tests/encrypted-content.t.cpp
index b4c6ded..ba229bf 100644
--- a/tests/tests/encrypted-content.t.cpp
+++ b/tests/tests/encrypted-content.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2018, Regents of the University of California
+/*
+ * Copyright (c) 2014-2020, Regents of the University of California
  *
  * This file is part of NAC (Name-Based Access Control for NDN).
  * See AUTHORS.md for complete list of NAC authors and contributors.
@@ -19,9 +19,7 @@
 
 #include "encrypted-content.hpp"
 
-#include "tests-common.hpp"
-
-#include <iostream>
+#include "boost-test.hpp"
 
 namespace ndn {
 namespace nac {
diff --git a/tests/tests/encryptor.t.cpp b/tests/tests/encryptor.t.cpp
index 5b8aae8..7a38071 100644
--- a/tests/tests/encryptor.t.cpp
+++ b/tests/tests/encryptor.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2018, Regents of the University of California
+/*
+ * Copyright (c) 2014-2020, Regents of the University of California
  *
  * NAC library is free software: you can redistribute it and/or modify it under the
  * terms of the GNU Lesser General Public License as published by the Free Software
@@ -19,9 +19,10 @@
 
 #include "encryptor.hpp"
 
-#include "tests-common.hpp"
+#include "boost-test.hpp"
 #include "dummy-forwarder.hpp"
 #include "static-data.hpp"
+#include "unit-test-common-fixtures.hpp"
 
 #include <iostream>
 #include <ndn-cxx/util/string-helper.hpp>
diff --git a/tests/unit-test-common-fixtures.cpp b/tests/unit-test-common-fixtures.cpp
index f001ef7..adec92a 100644
--- a/tests/unit-test-common-fixtures.cpp
+++ b/tests/unit-test-common-fixtures.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2018, Regents of the University of California
+/*
+ * Copyright (c) 2014-2020, Regents of the University of California
  *
  * NAC library is free software: you can redistribute it and/or modify it under the
  * terms of the GNU Lesser General Public License as published by the Free Software
@@ -17,16 +17,12 @@
  * See AUTHORS.md for complete list of NAC library authors and contributors.
  */
 
-#include "tests-common.hpp"
+#include "unit-test-common-fixtures.hpp"
 
 namespace ndn {
 namespace nac {
 namespace tests {
 
-BaseFixture::BaseFixture()
-{
-}
-
 UnitTestTimeFixture::UnitTestTimeFixture()
   : steadyClock(make_shared<time::UnitTestSteadyClock>())
   , systemClock(make_shared<time::UnitTestSystemClock>())
diff --git a/tests/unit-test-common-fixtures.hpp b/tests/unit-test-common-fixtures.hpp
index 03ba0f5..e345b02 100644
--- a/tests/unit-test-common-fixtures.hpp
+++ b/tests/unit-test-common-fixtures.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2018, Regents of the University of California
+/*
+ * Copyright (c) 2014-2020, Regents of the University of California
  *
  * NAC library is free software: you can redistribute it and/or modify it under the
  * terms of the GNU Lesser General Public License as published by the Free Software
@@ -20,10 +20,10 @@
 #ifndef NAC_TESTS_UNIT_TEST_COMMON_FIXTURES_HPP
 #define NAC_TESTS_UNIT_TEST_COMMON_FIXTURES_HPP
 
-#include "boost-test.hpp"
 #include "identity-management-fixture.hpp"
 
-#include <boost/asio.hpp>
+#include <boost/asio/io_service.hpp>
+
 #include <ndn-cxx/util/time-unit-test-clock.hpp>
 
 namespace ndn {
@@ -38,10 +38,10 @@
 class BaseFixture : public IdentityManagementFixture
 {
 protected:
-  BaseFixture();
+  BaseFixture() = default;
 
 protected:
-  /** \brief reference to global io_service
+  /** \brief global io_service
    */
   boost::asio::io_service m_io;
 };
@@ -81,8 +81,6 @@
 protected:
   shared_ptr<time::UnitTestSteadyClock> steadyClock;
   shared_ptr<time::UnitTestSystemClock> systemClock;
-
-  friend class LimitedIo;
 };
 
 } // namespace tests
