diff --git a/tests/daemon/face/websocket-transport-fixture.hpp b/tests/daemon/face/websocket-transport-fixture.hpp
index b1700ed..2e1e61e 100644
--- a/tests/daemon/face/websocket-transport-fixture.hpp
+++ b/tests/daemon/face/websocket-transport-fixture.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2021,  Regents of the University of California,
+ * Copyright (c) 2014-2022,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -33,25 +33,16 @@
 #include "tests/daemon/limited-io.hpp"
 #include "tests/daemon/face/dummy-link-service.hpp"
 
-namespace nfd {
-namespace face {
-namespace tests {
+namespace nfd::tests {
 
-using namespace nfd::tests;
 namespace ip = boost::asio::ip;
+using face::WebSocketTransport;
 
 /** \brief a fixture that accepts a single WebSocket connection from a client
  */
 class WebSocketTransportFixture : public GlobalIoFixture
 {
 protected:
-  WebSocketTransportFixture()
-    : transport(nullptr)
-    , serverReceivedPackets(nullptr)
-    , clientShouldPong(true)
-  {
-  }
-
   /** \brief initialize server and start listening
    */
   void
@@ -114,7 +105,7 @@
     transport = static_cast<WebSocketTransport*>(face->getTransport());
     serverReceivedPackets = &static_cast<DummyLinkService*>(face->getLinkService())->receivedPackets;
 
-    BOOST_REQUIRE_EQUAL(transport->getState(), TransportState::UP);
+    BOOST_REQUIRE_EQUAL(transport->getState(), face::TransportState::UP);
   }
 
 private:
@@ -202,20 +193,18 @@
   websocket::Server server;
   websocketpp::connection_hdl serverHdl;
   ip::tcp::endpoint remoteEp;
-  WebSocketTransport* transport;
-  std::vector<RxPacket>* serverReceivedPackets;
+  WebSocketTransport* transport = nullptr;
+  std::vector<RxPacket>* serverReceivedPackets = nullptr;
 
   websocket::Client client;
   websocketpp::connection_hdl clientHdl;
-  bool clientShouldPong;
+  bool clientShouldPong = true;
   std::vector<std::string> clientReceivedMessages;
 
 private:
   unique_ptr<Face> face;
 };
 
-} // namespace tests
-} // namespace face
-} // namespace nfd
+} // namespace nfd::tests
 
 #endif // NFD_TESTS_DAEMON_FACE_WEBSOCKET_TRANSPORT_FIXTURE_HPP
