GildedRose-Refactoring-Kata/cpp
tbeu 73a51ef14f Fix C++ code smells
* Move "using namespace std;" from header to module file (to no longer pollute the global namespace).
* Fix inconsistency of having namespace prefix in test code.
* Add include guard to GildedRose.h.
* Avoid std::endl.
* Have consistent white-space.
2025-02-12 20:56:22 +01:00
..
src Fix C++ code smells 2025-02-12 20:56:22 +01:00
test Fix C++ code smells 2025-02-12 20:56:22 +01:00
.gitignore Refactor C++ version of the Gilded Rose kata 2019-12-09 08:40:47 +01:00
CMakeLists.txt Restructure build targets of CMake configuration 2025-02-11 23:04:23 +01:00
README.md Restructure build targets of CMake configuration 2025-02-11 23:04:23 +01:00

C++ version of Gilded Rose refactoring kata

Introduction

The C++ version of the Gilded Rose refactoring kata is available in four variants using different test frameworks:

  • Catch2 test framework
    1. Traditional unit test with the Catch2 test framework in the test/cpp_catch2_unittest folder.
    2. Approval tests with the Catch2 test framework in the test/cpp_catch2_approvaltest folder.
  • Google Test framework
    1. Traditional unit test with the Googletest test framework in the test/cpp_googletest_unittest folder.
    2. Approval tests with the Googletest test framework in the test/cpp_googletest_approvaltest folder.

The GildedRose.cc file, i.e. the code under test, is identical in all four variants.

Prerequisites

  • CMake version >= 3.13
  • C++ compiler that supports C++14

How to build and run tests in a terminal

Build tests

$ cd ${GIT_FOLDER}/GildedRose-Refactoring-Kata/cpp
$ mkdir build
$ cd build
$ cmake ..
$ cmake --build .

Show available tests

$ cd ${GIT_FOLDER}/GildedRose-Refactoring-Kata/cpp/build
$ ctest -N
Test project ${GIT_FOLDER}/GildedRose-Refactoring-Kata/cpp/build
  Test #1: GildedRoseCatch2ApprovalTests
  Test #2: GildedRoseCatch2UnitTests
  Test #3: GildedRoseGoogletestApprovalTests
  Test #4: GildedRoseGoogletestUnitTests

Run all tests

$ ctest

Run all tests with verbose output

$ ctest -VV

Run a specific test with verbose output

$ ctest -VV --tests-regex Catch2Approval

How to build and run tests using the CLion IDE

  1. Start CLion
  2. Select menu File - Open...
  3. Select folder ${GIT_FOLDER}/GildedRose-Refactoring-Kata/cpp
  4. Select menu Build - Build Project
  5. Select menu Run - Run...
  6. Select what test variant to run, e.g. GildedRoseCatch2ApprovalTests.

How to build and run tests using Visual Studio 2019

  1. Start Visual Studio 2019
  2. Select Open a local folder
  3. Select folder ${GIT_FOLDER}/GildedRose-Refactoring-Kata/cpp
  4. Wait for message CMake generation finished. in the CMake output window at the bottom
  5. Select what test variant to run in the drop down menu for Startup Items, e.g. GildedRoseCatch2ApprovalTests.exe.
  6. Select menu Debug - Start