diff --git a/tests/unit-tests/util/test-config-file.cpp b/tests/unit-tests/util/test-config-file.cpp
index 06316bb..2f6650e 100644
--- a/tests/unit-tests/util/test-config-file.cpp
+++ b/tests/unit-tests/util/test-config-file.cpp
@@ -20,6 +20,7 @@
  */
 
 #include "util/config-file.hpp"
+#include "../util/test-home-environment-fixture.hpp"
 
 #include <cstdlib>
 
@@ -28,25 +29,7 @@
 namespace ndn {
 namespace tests {
 
-class ConfigFileFixture
-{
-public:
-  ConfigFileFixture()
-  {
-    m_HOME = std::getenv("TEST_HOME");
-  }
-
-  ~ConfigFileFixture()
-  {
-    setenv("TEST_HOME", m_HOME.c_str(), 1);
-    // std::cerr << "restoring home = " << m_HOME << std::endl;
-  }
-
-protected:
-  std::string m_HOME;
-};
-
-BOOST_FIXTURE_TEST_SUITE(UtilTestConfigFile, ConfigFileFixture)
+BOOST_FIXTURE_TEST_SUITE(UtilTestConfigFile, util::TestHomeEnvironmentFixture)
 
 BOOST_AUTO_TEST_CASE(TestParse)
 {
diff --git a/tests/unit-tests/util/test-home-environment-fixture.hpp b/tests/unit-tests/util/test-home-environment-fixture.hpp
new file mode 100644
index 0000000..4fd5dca
--- /dev/null
+++ b/tests/unit-tests/util/test-home-environment-fixture.hpp
@@ -0,0 +1,53 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2013-2014 Regents of the University of California.
+ *
+ * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
+ *
+ * ndn-cxx library is free software: you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ *
+ * You should have received copies of the GNU General Public License and GNU Lesser
+ * General Public License along with ndn-cxx, e.g., in COPYING.md file.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
+ */
+
+#ifndef NDN_TESTS_UNIT_TESTS_UTIL_HOME_ENVIRONMENT_FIXTURE_HPP
+#define NDN_TESTS_UNIT_TESTS_UTIL_HOME_ENVIRONMENT_FIXTURE_HPP
+
+namespace ndn {
+namespace util {
+
+class TestHomeEnvironmentFixture
+{
+public:
+  TestHomeEnvironmentFixture()
+  {
+    if (std::getenv("TEST_HOME"))
+      m_HOME = std::getenv("TEST_HOME");
+  }
+
+  virtual
+  ~TestHomeEnvironmentFixture()
+  {
+    if (!m_HOME.empty())
+      setenv("TEST_HOME", m_HOME.c_str(), 1);
+    else
+      unsetenv("TEST_HOME");
+  }
+
+protected:
+  std::string m_HOME;
+};
+
+} // namespace tests
+} // namespace ndn
+
+#endif // NDN_TESTS_UNIT_TESTS_UTIL_HOME_ENVIRONMENT_FIXTURE_HPP
