diff --git a/libweave/include/weave/mock_command.h b/libweave/include/weave/mock_command.h
index 6298f99..def903d 100644
--- a/libweave/include/weave/mock_command.h
+++ b/libweave/include/weave/mock_command.h
@@ -15,6 +15,7 @@
 #include <gmock/gmock.h>
 
 namespace weave {
+namespace unittests {
 
 class MockCommand : public Command {
  public:
@@ -44,6 +45,7 @@
   std::unique_ptr<base::DictionaryValue> ToJson() const override;
 };
 
+}  // namespace unittests
 }  // namespace weave
 
 #endif  // LIBWEAVE_INCLUDE_WEAVE_MOCK_COMMAND_H_
diff --git a/libweave/include/weave/mock_commands.h b/libweave/include/weave/mock_commands.h
index 12514c5..3cca6ab 100644
--- a/libweave/include/weave/mock_commands.h
+++ b/libweave/include/weave/mock_commands.h
@@ -12,6 +12,7 @@
 #include <gmock/gmock.h>
 
 namespace weave {
+namespace unittests {
 
 class MockCommands : public Commands {
  public:
@@ -27,6 +28,7 @@
   MOCK_METHOD1(FindCommand, Command*(const std::string&));
 };
 
+}  // namespace unittests
 }  // namespace weave
 
 #endif  // LIBWEAVE_INCLUDE_WEAVE_MOCK_COMMANDS_H_
diff --git a/libweave/include/weave/unittest_utils.h b/libweave/include/weave/unittest_utils.h
new file mode 100644
index 0000000..3cfaeea
--- /dev/null
+++ b/libweave/include/weave/unittest_utils.h
@@ -0,0 +1,37 @@
+// Copyright 2015 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef LIBWEAVE_INCLUDE_WEAVE_UNITTEST_UTILS_H_
+#define LIBWEAVE_INCLUDE_WEAVE_UNITTEST_UTILS_H_
+
+#include <memory>
+#include <string>
+
+#include <base/values.h>
+#include <gtest/gtest.h>
+
+namespace weave {
+namespace unittests {
+
+// Helper method to create base::Value from a string as a smart pointer.
+// For ease of definition in C++ code, double-quotes in the source definition
+// are replaced with apostrophes.
+std::unique_ptr<base::Value> CreateValue(const std::string& json);
+
+// Helper method to create a JSON dictionary object from a string.
+std::unique_ptr<base::DictionaryValue> CreateDictionaryValue(
+    const std::string& json);
+
+inline bool IsEqualValue(const base::Value& val1, const base::Value& val2) {
+  return val1.Equals(&val2);
+}
+
+}  // namespace unittests
+}  // namespace weave
+
+#define EXPECT_JSON_EQ(expected, actual)       \
+  EXPECT_PRED2(weave::unittests::IsEqualValue, \
+               *weave::unittests::CreateValue(expected), actual)
+
+#endif  // LIBWEAVE_INCLUDE_WEAVE_UNITTEST_UTILS_H_
diff --git a/libweave/src/commands/dbus_command_proxy_unittest.cc b/libweave/src/commands/dbus_command_proxy_unittest.cc
index e8fa9ec..9d26892 100644
--- a/libweave/src/commands/dbus_command_proxy_unittest.cc
+++ b/libweave/src/commands/dbus_command_proxy_unittest.cc
@@ -119,7 +119,7 @@
   scoped_refptr<dbus::MockExportedObject> mock_exported_object_command_;
   scoped_refptr<dbus::MockBus> bus_;
 
-  MockCommand command_;
+  unittests::MockCommand command_;
   std::unique_ptr<DBusCommandProxy> proxy_;
 };
 
diff --git a/libweave/src/commands/mock_command.cc b/libweave/src/commands/mock_command.cc
index 6b52b99..2b35de7 100644
--- a/libweave/src/commands/mock_command.cc
+++ b/libweave/src/commands/mock_command.cc
@@ -12,8 +12,7 @@
 #include "libweave/src/commands/unittest_utils.h"
 
 namespace weave {
-
-using unittests::CreateDictionaryValue;
+namespace unittests {
 
 std::unique_ptr<base::DictionaryValue> MockCommand::GetParameters() const {
   return CreateDictionaryValue(MockGetParameters());
@@ -31,4 +30,5 @@
   return CreateDictionaryValue(MockToJson());
 }
 
+}  // namespace unittests
 }  // namespace weave
diff --git a/libweave/src/commands/unittest_utils.h b/libweave/src/commands/unittest_utils.h
index 043bace..0659069 100644
--- a/libweave/src/commands/unittest_utils.h
+++ b/libweave/src/commands/unittest_utils.h
@@ -13,23 +13,11 @@
 
 #include "libweave/src/commands/prop_types.h"
 #include "libweave/src/commands/prop_values.h"
+#include "weave/unittest_utils.h"
 
 namespace weave {
 namespace unittests {
 
-// Helper method to create base::Value from a string as a smart pointer.
-// For ease of definition in C++ code, double-quotes in the source definition
-// are replaced with apostrophes.
-std::unique_ptr<base::Value> CreateValue(const std::string& json);
-
-// Helper method to create a JSON dictionary object from a string.
-std::unique_ptr<base::DictionaryValue> CreateDictionaryValue(
-    const std::string& json);
-
-inline bool IsEqualValue(const base::Value& val1, const base::Value& val2) {
-  return val1.Equals(&val2);
-}
-
 template <typename T>
 std::unique_ptr<const PropValue> make_prop_value(const base::Value& value) {
   auto prop_type = PropType::Create(GetValueType<T>());
@@ -56,8 +44,4 @@
 }  // namespace unittests
 }  // namespace weave
 
-#define EXPECT_JSON_EQ(expected, actual)                                   \
-  EXPECT_PRED2(unittests::IsEqualValue, *unittests::CreateValue(expected), \
-               actual)
-
 #endif  // LIBWEAVE_SRC_COMMANDS_UNITTEST_UTILS_H_
