diff --git a/Tests/Functional/Suite/MakeSimulations.cpp b/Tests/Functional/Suite/MakeSimulations.cpp
index 750b5f8203a4caf1d0f7bd6e630ac8a06bedc84b..051c97c5163208c8b2d2c424d06728f41e863b67 100644
--- a/Tests/Functional/Suite/MakeSimulations.cpp
+++ b/Tests/Functional/Suite/MakeSimulations.cpp
@@ -378,26 +378,9 @@ ISpecularScan* test::makeSimulation::BasicSpecularScan(bool vsQ)
 std::unique_ptr<SpecularSimulation> test::makeSimulation::BasicSpecular(const MultiLayer& sample,
                                                                         bool vsQ)
 {
-    const double wavelength = 1.54 * angstrom;
-    const int number_of_bins = 2000;
-    const double min_angle = 0;
-    const double max_angle = 5 * deg;
-
-    std::unique_ptr<SpecularSimulation> result;
-
-    if (vsQ) {
-        FixedBinAxis angle_axis("axis", number_of_bins, min_angle, max_angle);
-        auto angles = angle_axis.binCenters();
-        std::vector<double> qs(angle_axis.size(), 0.0);
-        for (size_t i = 0, size = qs.size(); i < size; ++i)
-            qs[i] = 4.0 * M_PI * std::sin(angles[i]) / wavelength;
-        QzScan scan(qs);
-        result.reset(new SpecularSimulation(scan, sample));
-    } else {
-        AlphaScan scan(wavelength, FixedBinAxis("axis", number_of_bins, min_angle, max_angle));
-        result.reset(new SpecularSimulation(scan, sample));
-    }
+    std::unique_ptr<ISpecularScan> scan(BasicSpecularScan(vsQ));
 
+    auto result = std::make_unique<SpecularSimulation>(*scan, sample);
     result->options().setUseAvgMaterials(true);
     return result;
 }