diff --git a/tests/boost-test.hpp b/tests/boost-test.hpp
new file mode 100644
index 0000000..e5ecbd5
--- /dev/null
+++ b/tests/boost-test.hpp
@@ -0,0 +1,31 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2011-2015  Regents of the University of California.
+ *
+ * This file is part of ndnSIM. See AUTHORS for complete list of ndnSIM authors and
+ * contributors.
+ *
+ * ndnSIM is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ *
+ * ndnSIM 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * ndnSIM, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+#ifndef NDN_TESTS_BOOST_TEST_HPP
+#define NDN_TESTS_BOOST_TEST_HPP
+
+// suppress warnings from Boost.Test
+#pragma GCC system_header
+#pragma clang system_header
+
+#include <boost/test/unit_test.hpp>
+#include <boost/concept_check.hpp>
+#include <boost/test/output_test_stream.hpp>
+
+#endif // NDN_TESTS_BOOST_TEST_HPP
diff --git a/tests/main.cpp b/tests/main.cpp
new file mode 100644
index 0000000..1a2923f
--- /dev/null
+++ b/tests/main.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2011-2015  Regents of the University of California.
+ *
+ * This file is part of ndnSIM. See AUTHORS for complete list of ndnSIM authors and
+ * contributors.
+ *
+ * ndnSIM is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ *
+ * ndnSIM 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * ndnSIM, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+#define BOOST_TEST_MAIN 1
+#define BOOST_TEST_DYN_LINK 1
+
+#include "boost-test.hpp"
diff --git a/tests/ndn-test.cpp b/tests/other/ndn-test.cpp
similarity index 100%
rename from tests/ndn-test.cpp
rename to tests/other/ndn-test.cpp
diff --git a/tests/ndn-test.sh b/tests/other/ndn-test.sh
similarity index 100%
rename from tests/ndn-test.sh
rename to tests/other/ndn-test.sh
diff --git a/tests/unit-tests/README.md b/tests/unit-tests/README.md
new file mode 100644
index 0000000..da9436a
--- /dev/null
+++ b/tests/unit-tests/README.md
@@ -0,0 +1,22 @@
+ndnSIM unit tests
+=================
+
+ndnSIM uses [Boost Unit Test Framework](http://www.boost.org/doc/libs/1_48_0/libs/test/doc/html/index.html)
+for testing features of the implementation.
+
+ndnSIM unit tests should be placed into `ndnSIM/tests/unit-tests/` folder.  All `.cpp` files placed
+in this folder will be automatically compiled together.
+
+Running unit-tests
+------------------
+
+To run unit tests, NS-3 and ndnSIM need to be configured and build with the unit test support.  To
+enable both general NS-3 unit tests and ndnSIM unit tests, add `--enable-tests` during configuration
+phase.  For example, run the following from the NS-3 root folder:
+
+    ./waf configure --enable-tests
+    ./waf build
+
+To run unit tests:
+
+    ./waf --run ndnSIM-unit-tests
diff --git a/tests/wscript b/tests/wscript
index 00a1780..3a565d8 100644
--- a/tests/wscript
+++ b/tests/wscript
@@ -1,13 +1,18 @@
 ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
 
-from waflib import Utils, Logs
-
 def build(bld):
-    # This may be necessary for visualizer to work
+    # To allow  tests to use features from all enabled modules
     all_modules = [mod[len("ns3-"):] for mod in bld.env['NS3_ENABLED_MODULES']]
 
-    for i in bld.path.ant_glob(['*.cpp']):
+    # Unit tests
+    tests = bld.create_ns3_program('ndnSIM-unit-tests', all_modules)
+    tests.source = bld.path.ant_glob(['main.cpp', 'unit-tests/**/*.cpp'])
+    tests.includes = ['#', '.', '../NFD/', "../NFD/daemon", "../NFD/core", "../helper", "../model", "../apps", "../utils", "../examples"]
+
+    # Other tests
+    for i in bld.path.ant_glob(['other/*.cpp']):
         name = str(i)[:-len(".cpp")]
         obj = bld.create_ns3_program(name, all_modules)
         obj.source = [i] + bld.path.ant_glob(['%s/**/*.cpp' % name])
         obj.install_path = None
+
diff --git a/wscript b/wscript
index d056296..a0e0adc 100644
--- a/wscript
+++ b/wscript
@@ -6,7 +6,7 @@
 
 import wutils
 
-REQUIRED_BOOST_LIBS = ['graph']
+REQUIRED_BOOST_LIBS = ['graph', 'unit_test_framework']
 
 def required_boost_libs(conf):
     conf.env.REQUIRED_BOOST_LIBS += REQUIRED_BOOST_LIBS
