diff --git a/tests/fixtures/test.gitconfig b/tests/fixtures/test.gitconfig
new file mode 100644
index 0000000..3c573c9
--- /dev/null
+++ b/tests/fixtures/test.gitconfig
@@ -0,0 +1,3 @@
+[section]
+	empty
+	nonempty = true
diff --git a/tests/test_git_config.py b/tests/test_git_config.py
new file mode 100644
index 0000000..d67a8ba
--- /dev/null
+++ b/tests/test_git_config.py
@@ -0,0 +1,43 @@
+import os
+import unittest
+
+import git_config
+
+def fixture(*paths):
+    """Return a path relative to test/fixtures.
+    """
+    return os.path.join(os.path.dirname(__file__), 'fixtures', *paths)
+
+class GitConfigUnitTest(unittest.TestCase):
+    """Tests the GitConfig class.
+    """
+    def setUp(self):
+        """Create a GitConfig object using the test.gitconfig fixture.
+        """
+        config_fixture = fixture('test.gitconfig')
+        self.config = git_config.GitConfig(config_fixture)
+
+    def test_GetString_with_empty_config_values(self):
+        """
+        Test config entries with no value.
+
+        [section]
+            empty
+
+        """
+        val = self.config.GetString('section.empty')
+        self.assertEqual(val, None)
+
+    def test_GetString_with_true_value(self):
+        """
+        Test config entries with a string value.
+
+        [section]
+            nonempty = true
+
+        """
+        val = self.config.GetString('section.nonempty')
+        self.assertEqual(val, 'true')
+
+if __name__ == '__main__':
+    unittest.main()
