diff --git a/tests/test-common.hpp b/tests/test-common.hpp
index 3139ef9..8d37568 100644
--- a/tests/test-common.hpp
+++ b/tests/test-common.hpp
@@ -47,26 +47,30 @@
 namespace nfd {
 namespace tests {
 
-/** \brief create an Interest
+/**
+ * \brief Create an Interest
  */
 shared_ptr<Interest>
 makeInterest(const Name& name, bool canBePrefix = false,
              optional<time::milliseconds> lifetime = nullopt,
              optional<Interest::Nonce> nonce = nullopt);
 
-/** \brief create a Data with fake signature
- *  \note Data may be modified afterwards without losing the fake signature.
- *        If a real signature is desired, sign again with KeyChain.
+/**
+ * \brief Create a Data with a null (i.e., empty) signature
+ *
+ * If a real signature is desired, use KeyChainFixture and sign again with `m_keyChain`.
  */
 shared_ptr<Data>
 makeData(const Name& name);
 
-/** \brief add a fake signature to Data
+/**
+ * \brief Add a null signature to \p data
  */
 Data&
 signData(Data& data);
 
-/** \brief add a fake signature to Data
+/**
+ * \brief Add a null signature to \p data
  */
 inline shared_ptr<Data>
 signData(shared_ptr<Data> data)
@@ -75,15 +79,17 @@
   return data;
 }
 
-/** \brief create a Nack
+/**
+ * \brief Create a Nack
  */
 lp::Nack
 makeNack(Interest interest, lp::NackReason reason);
 
-/** \brief replace a name component in a packet
- *  \param[inout] pkt the packet
- *  \param index the index of the name component to replace
- *  \param args arguments to name::Component constructor
+/**
+ * \brief Replace a name component in a packet
+ * \param[inout] pkt the packet
+ * \param index the index of the name component to replace
+ * \param args arguments to name::Component constructor
  */
 template<typename Packet, typename ...Args>
 void
@@ -94,22 +100,25 @@
   pkt.setName(name);
 }
 
-/** \brief create a prefix announcement without signing
+/**
+ * \brief Create a prefix announcement without signing
  */
 ndn::PrefixAnnouncement
 makePrefixAnn(const Name& announcedName, time::milliseconds expiration,
               optional<ndn::security::ValidityPeriod> validity = nullopt);
 
-/** \brief create a prefix announcement without signing
- *  \param announcedName announced name
- *  \param expiration expiration period
- *  \param validityFromNow validity period, relative from now
+/**
+ * \brief Create a prefix announcement without signing
+ * \param announcedName announced name
+ * \param expiration expiration period
+ * \param validityFromNow validity period, relative from now
  */
 ndn::PrefixAnnouncement
 makePrefixAnn(const Name& announcedName, time::milliseconds expiration,
               std::pair<time::seconds, time::seconds> validityFromNow);
 
-/** \brief sign a prefix announcement
+/**
+ * \brief Sign a prefix announcement
  */
 ndn::PrefixAnnouncement
 signPrefixAnn(ndn::PrefixAnnouncement&& pa, ndn::KeyChain& keyChain,
