diff --git a/tests/daemon/fw/choose-strategy.hpp b/tests/daemon/fw/choose-strategy.hpp
index 9ecc54b..4045540 100644
--- a/tests/daemon/fw/choose-strategy.hpp
+++ b/tests/daemon/fw/choose-strategy.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2014-2016,  Regents of the University of California,
+ * Copyright (c) 2014-2017,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -28,6 +28,7 @@
 
 #include "fw/forwarder.hpp"
 #include "table/strategy-choice.hpp"
+#include <boost/lexical_cast.hpp>
 
 namespace nfd {
 namespace fw {
@@ -41,7 +42,7 @@
  *  \param forwarder the forwarder
  *  \param prefix namespace to choose the strategy for
  *  \param instanceName strategy instance name; the strategy must already be registered
- *  \throw std::invalid_argument cannot find strategy by instanceName
+ *  \throw std::invalid_argument cannot create strategy by instanceName
  *  \throw std::bad_cast strategy type is incompatible with S
  *  \return a reference to the strategy
  */
@@ -51,9 +52,9 @@
        const Name& instanceName = S::getStrategyName())
 {
   StrategyChoice& sc = forwarder.getStrategyChoice();
-  bool isInserted = sc.insert(prefix, instanceName);
-  if (!isInserted) {
-    BOOST_THROW_EXCEPTION(std::invalid_argument("cannot create strategy"));
+  auto insertRes = sc.insert(prefix, instanceName);
+  if (!insertRes) {
+    BOOST_THROW_EXCEPTION(std::invalid_argument(boost::lexical_cast<std::string>(insertRes)));
   }
   return dynamic_cast<S&>(sc.findEffectiveStrategy(prefix));
 }
