diff --git a/tests/test_csm.py b/tests/test_csm.py
index c66d961613da0c386651a65e4a269c98d50a00e2..94fb524ec5daeb83b5b779625c31e40932892f3a 100644
--- a/tests/test_csm.py
+++ b/tests/test_csm.py
@@ -6,6 +6,14 @@ from plio.io.io_gdal import GeoDataset
 import csmapi
 from knoten import csm
 
+@pytest.fixture
+def mock_dem():
+    mock_dem = mock.MagicMock(spec_set=GeoDataset)
+    mock_dem.no_data_value = 10
+    mock_dem.read_array.return_value = [[100]]
+    mock_dem.latlon_to_pixel.return_value = (0.5,0.5)
+    return mock_dem
+
 @pytest.fixture
 def mock_sensor():
     mock_sensor = mock.MagicMock(spec=csmapi.RasterGM)
@@ -28,16 +36,12 @@ def test_generate_ground_point_with_imagecoord(mock_sensor, pt):
     mock_sensor.imageToGround.assert_called_once_with(pt, height)
 
 @mock.patch.object(csm, 'get_radii', return_value=(10,10))
-@mock.patch('pyproj.transformer.Transformer.transform', return_value=(0,0,0))
 @mock.patch.object(csm, '_compute_intersection_distance', return_value=0)
-def test_generate_ground_point_with_dtm(mock_sensor, pt, _):
-    # Passing the mock_dem fixture fails for some reason. The
-    # isinstance(obj, GeoDataset) check fails, causing the singldispath
-    # to never dispatch to the func under test.
-    mock_dem = mock.MagicMock(spec_set=GeoDataset)
-    mock_dem.no_data_value = 10
-    mock_dem.read_array.return_value = [[100]]
-    mock_dem.latlon_to_pixel.return_value = (0.5,0.5)
+@mock.patch('pyproj.transformer.Transformer.transform', return_value=(0,0,0))
+def test_generate_ground_point_with_dtm(mock_get_radii, 
+                                        mock_compute_intsesection, 
+                                        mock_pyproj_transformer, 
+                                        mock_sensor, pt, mock_dem):
     csm.generate_ground_point(mock_dem, pt, mock_sensor)
     # This call is mocked so that the intitial intersection and 
     # one iteration should occur. Therefore, the call count
@@ -48,16 +52,10 @@ from collections import namedtuple
 
 @mock.patch.object(csm, 'get_radii', return_value=(10,10))
 @mock.patch('pyproj.transformer.Transformer.transform', return_value=(0,0,0))
-def test_generate_ground_point_with_dtm_ndv(mock_sensor, pt):
-    # Passing the mock_dem fixture fails for some reason. The
-    # isinstance(obj, GeoDataset) check fails, causing the singldispath
-    # to never dispatch to the func under test.
-    mock_dem = mock.MagicMock(spec_set=GeoDataset)
-
-    # If the no data value equals the height, this should raise a value error
+def test_generate_ground_point_with_dtm_ndv(mock_get_radii,
+                                            mock_pyproj_transformer,
+                                            mock_sensor, pt, mock_dem):
     mock_dem.no_data_value = 100
-    mock_dem.read_array.return_value = [[100]]
-    mock_dem.latlon_to_pixel.return_value = (0.5,0.5)
     with pytest.raises(ValueError):
         csm.generate_ground_point(mock_dem, pt, mock_sensor)