diff --git a/tests/daemon/fw/dummy-strategy.hpp b/tests/daemon/fw/dummy-strategy.hpp
index 6d4d45d..fb82add 100644
--- a/tests/daemon/fw/dummy-strategy.hpp
+++ b/tests/daemon/fw/dummy-strategy.hpp
@@ -97,6 +97,36 @@
   shared_ptr<Face> interestOutFace;
 };
 
+/** \brief DummyStrategy with specific version
+ */
+template<uint64_t VERSION>
+class VersionedDummyStrategy : public DummyStrategy
+{
+public:
+  static void
+  registerAs(const Name& strategyName)
+  {
+    DummyStrategy::registerAsImpl<VersionedDummyStrategy<VERSION>>(strategyName);
+  }
+
+  static Name
+  getStrategyName()
+  {
+    return DummyStrategy::getStrategyName(VERSION);
+  }
+
+  /** \brief constructor
+   *
+   *  The strategy instance name is taken from \p name ; if it does not contain a version component,
+   *  \p VERSION will be appended.
+   */
+  explicit
+  VersionedDummyStrategy(Forwarder& forwarder, const Name& name = getStrategyName())
+    : DummyStrategy(forwarder, Strategy::makeInstanceName(name, getStrategyName()))
+  {
+  }
+};
+
 } // namespace tests
 } // namespace nfd
 
diff --git a/tests/daemon/table/strategy-choice.t.cpp b/tests/daemon/table/strategy-choice.t.cpp
index e827321..4508391 100644
--- a/tests/daemon/table/strategy-choice.t.cpp
+++ b/tests/daemon/table/strategy-choice.t.cpp
@@ -74,6 +74,36 @@
 
 using fw::Strategy;
 
+BOOST_AUTO_TEST_CASE(Versioning)
+{
+  const Name strategyNameV("/strategy-choice-V");
+  const Name strategyNameV0("/strategy-choice-V/%FD%00");
+  const Name strategyNameV1("/strategy-choice-V/%FD%01");
+  const Name strategyNameV2("/strategy-choice-V/%FD%02");
+  const Name strategyNameV3("/strategy-choice-V/%FD%03");
+  const Name strategyNameV4("/strategy-choice-V/%FD%04");
+  const Name strategyNameV5("/strategy-choice-V/%FD%05");
+
+  VersionedDummyStrategy<1>::registerAs(strategyNameV1);
+  VersionedDummyStrategy<3>::registerAs(strategyNameV3);
+  VersionedDummyStrategy<4>::registerAs(strategyNameV4);
+
+  // unversioned: choose latest version
+  BOOST_CHECK_EQUAL(this->insertAndGet("/A", strategyNameV), strategyNameV4);
+
+  // exact version: choose same version
+  BOOST_CHECK_EQUAL(this->insertAndGet("/B", strategyNameV1), strategyNameV1);
+  BOOST_CHECK_EQUAL(this->insertAndGet("/C", strategyNameV3), strategyNameV3);
+  BOOST_CHECK_EQUAL(this->insertAndGet("/D", strategyNameV4), strategyNameV4);
+
+  // lower version: choose next higher version
+  // BOOST_CHECK_EQUAL(this->insertAndGet("/E", strategyNameV0), strategyNameV1);
+  // BOOST_CHECK_EQUAL(this->insertAndGet("/F", strategyNameV2), strategyNameV3);
+
+  // higher version: failure
+  BOOST_CHECK_EQUAL(sc.insert("/G", strategyNameV5), false);
+}
+
 BOOST_AUTO_TEST_CASE(Parameters)
 {
   // no parameters
