diff --git a/openstackclient/tests/fakes.py b/openstackclient/tests/fakes.py
index 46f983dc46..229b46529c 100644
--- a/openstackclient/tests/fakes.py
+++ b/openstackclient/tests/fakes.py
@@ -189,6 +189,10 @@ class FakeResource(object):
     def keys(self):
         return self._info.keys()
 
+    @property
+    def info(self):
+        return self._info
+
 
 class FakeResponse(requests.Response):
 
diff --git a/openstackclient/tests/volume/v2/fakes.py b/openstackclient/tests/volume/v2/fakes.py
index fc45e47b9d..ebb0c2ff1a 100644
--- a/openstackclient/tests/volume/v2/fakes.py
+++ b/openstackclient/tests/volume/v2/fakes.py
@@ -451,6 +451,44 @@ class FakeVolume(object):
 
         return mock.MagicMock(side_effect=volumes)
 
+    @staticmethod
+    def get_volume_columns(volume=None):
+        """Get the volume columns from a faked volume object.
+
+        :param volume:
+            A FakeResource objects faking volume
+        :return
+            A tuple which may include the following keys:
+            ('id', 'name', 'description', 'status', 'size', 'volume_type',
+             'metadata', 'snapshot', 'availability_zone', 'attachments')
+        """
+        if volume is not None:
+            return tuple(k for k in sorted(volume.keys()))
+        return tuple([])
+
+    @staticmethod
+    def get_volume_data(volume=None):
+        """Get the volume data from a faked volume object.
+
+        :param volume:
+            A FakeResource objects faking volume
+        :return
+            A tuple which may include the following values:
+            ('ce26708d', 'fake_volume', 'fake description', 'available',
+             20, 'fake_lvmdriver-1', "Alpha='a', Beta='b', Gamma='g'",
+             1, 'nova', [{'device': '/dev/ice', 'server_id': '1233'}])
+        """
+        data_list = []
+        if volume is not None:
+            for x in sorted(volume.keys()):
+                if x == 'tags':
+                    # The 'tags' should be format_list
+                    data_list.append(
+                        common_utils.format_list(volume.info.get(x)))
+                else:
+                    data_list.append(volume.info.get(x))
+        return tuple(data_list)
+
 
 class FakeAvailabilityZone(object):
     """Fake one or more volume availability zones (AZs)."""
diff --git a/openstackclient/tests/volume/v2/test_volume.py b/openstackclient/tests/volume/v2/test_volume.py
index 5689d008ec..85ff61422b 100644
--- a/openstackclient/tests/volume/v2/test_volume.py
+++ b/openstackclient/tests/volume/v2/test_volume.py
@@ -772,27 +772,30 @@ class TestVolumeShow(TestVolume):
     def setUp(self):
         super(TestVolumeShow, self).setUp()
 
-        self.volumes_mock.get.return_value = fakes.FakeResource(
-            None,
-            copy.deepcopy(volume_fakes.VOLUME),
-            loaded=True)
+        self._volume = volume_fakes.FakeVolume.create_one_volume()
+        self.volumes_mock.get.return_value = self._volume
         # Get the command object to test
         self.cmd = volume.ShowVolume(self.app, None)
 
     def test_volume_show(self):
         arglist = [
-            volume_fakes.volume_id
+            self._volume.id
         ]
         verifylist = [
-            ("volume", volume_fakes.volume_id)
+            ("volume", self._volume.id)
         ]
         parsed_args = self.check_parser(self.cmd, arglist, verifylist)
 
         columns, data = self.cmd.take_action(parsed_args)
-        self.volumes_mock.get.assert_called_with(volume_fakes.volume_id)
+        self.volumes_mock.get.assert_called_with(self._volume.id)
 
-        self.assertEqual(volume_fakes.VOLUME_columns, columns)
-        self.assertEqual(volume_fakes.VOLUME_data, data)
+        self.assertEqual(
+            volume_fakes.FakeVolume.get_volume_columns(self._volume),
+            columns)
+
+        self.assertEqual(
+            volume_fakes.FakeVolume.get_volume_data(self._volume),
+            data)
 
 
 class TestVolumeSet(TestVolume):