diff --git a/tests/daemon/table/measurements.t.cpp b/tests/daemon/table/measurements.t.cpp
index 79b2b94..539c409 100644
--- a/tests/daemon/table/measurements.t.cpp
+++ b/tests/daemon/table/measurements.t.cpp
@@ -134,7 +134,7 @@
 BOOST_AUTO_TEST_CASE(FindLongestPrefixMatch)
 {
   measurements.get("/A");
-  measurements.get("/A/B/C").getOrCreateStrategyInfo<DummyStrategyInfo1>();
+  measurements.get("/A/B/C").insertStrategyInfo<DummyStrategyInfo1>();
   measurements.get("/A/B/C/D");
 
   Entry* found1 = measurements.findLongestPrefixMatch("/A/B/C/D/E");
@@ -156,7 +156,7 @@
   Pit pit(nameTree);
 
   measurements.get("/A");
-  measurements.get("/A/B/C").getOrCreateStrategyInfo<DummyStrategyInfo1>();
+  measurements.get("/A/B/C").insertStrategyInfo<DummyStrategyInfo1>();
   measurements.get("/A/B/C/D");
 
   shared_ptr<Interest> interest = makeInterest("/A/B/C/D/E");
diff --git a/tests/daemon/table/strategy-choice.t.cpp b/tests/daemon/table/strategy-choice.t.cpp
index 42a36b0..91634e9 100644
--- a/tests/daemon/table/strategy-choice.t.cpp
+++ b/tests/daemon/table/strategy-choice.t.cpp
@@ -222,10 +222,10 @@
 
   BOOST_CHECK(table.insert("ndn:/", nameP));
   // { '/'=>P }
-  measurements.get("ndn:/").getOrCreateStrategyInfo<PStrategyInfo>();
-  measurements.get("ndn:/A").getOrCreateStrategyInfo<PStrategyInfo>();
-  measurements.get("ndn:/A/B").getOrCreateStrategyInfo<PStrategyInfo>();
-  measurements.get("ndn:/A/C").getOrCreateStrategyInfo<PStrategyInfo>();
+  measurements.get("ndn:/").insertStrategyInfo<PStrategyInfo>();
+  measurements.get("ndn:/A").insertStrategyInfo<PStrategyInfo>();
+  measurements.get("ndn:/A/B").insertStrategyInfo<PStrategyInfo>();
+  measurements.get("ndn:/A/C").insertStrategyInfo<PStrategyInfo>();
 
   BOOST_CHECK(table.insert("ndn:/A/B", nameP));
   // { '/'=>P, '/A/B'=>P }
diff --git a/tests/daemon/table/strategy-info-host.t.cpp b/tests/daemon/table/strategy-info-host.t.cpp
index 746d51a..4eaf9b0 100644
--- a/tests/daemon/table/strategy-info-host.t.cpp
+++ b/tests/daemon/table/strategy-info-host.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2014-2015,  Regents of the University of California,
+ * Copyright (c) 2014-2016,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -104,16 +104,16 @@
 {
   StrategyInfoHost host;
 
-  host.getOrCreateStrategyInfo<DummyStrategyInfo>(3503);
+  host.insertStrategyInfo<DummyStrategyInfo>(3503);
   BOOST_REQUIRE(host.getStrategyInfo<DummyStrategyInfo>() != nullptr);
   BOOST_CHECK_EQUAL(host.getStrategyInfo<DummyStrategyInfo>()->m_id, 3503);
 
-  host.getOrCreateStrategyInfo<DummyStrategyInfo>(1032);
+  host.insertStrategyInfo<DummyStrategyInfo>(1032);
   BOOST_REQUIRE(host.getStrategyInfo<DummyStrategyInfo>() != nullptr);
   BOOST_CHECK_EQUAL(host.getStrategyInfo<DummyStrategyInfo>()->m_id, 3503);
 
   host.setStrategyInfo<DummyStrategyInfo>(nullptr);
-  host.getOrCreateStrategyInfo<DummyStrategyInfo>(9956);
+  host.insertStrategyInfo<DummyStrategyInfo>(9956);
   BOOST_REQUIRE(host.getStrategyInfo<DummyStrategyInfo>() != nullptr);
   BOOST_CHECK_EQUAL(host.getStrategyInfo<DummyStrategyInfo>()->m_id, 9956);
 }
@@ -122,11 +122,11 @@
 {
   StrategyInfoHost host;
 
-  host.getOrCreateStrategyInfo<DummyStrategyInfo>(8063);
+  host.insertStrategyInfo<DummyStrategyInfo>(8063);
   BOOST_REQUIRE(host.getStrategyInfo<DummyStrategyInfo>() != nullptr);
   BOOST_CHECK_EQUAL(host.getStrategyInfo<DummyStrategyInfo>()->m_id, 8063);
 
-  host.getOrCreateStrategyInfo<DummyStrategyInfo2>(2871);
+  host.insertStrategyInfo<DummyStrategyInfo2>(2871);
   BOOST_REQUIRE(host.getStrategyInfo<DummyStrategyInfo2>() != nullptr);
   BOOST_CHECK_EQUAL(host.getStrategyInfo<DummyStrategyInfo2>()->m_id, 2871);
 
