GildedRose-Refactoring-Kata/cpp
Jacob Mossberg 1836cca836 Refactor C++ version of the Gilded Rose kata
* Make it possible to build and run tests in CLion
  and Visual Studio 2019 out of the box

* Provide four types of initial test using different test frameworks:
  * Catch2 test framework
    * Traditional unit testing using Catch2
    * Approval test using Catch2
  * Google Test test framework
    * Traditional unit testing using Google Test
    * Approval test using Google Test

* The different types of initial test are located in separate folders
  in the test folder.

* Remove scripts to build and run tests and replace
  with instructions in the cpp README.md

* Use C++17

* Use CMake => 3.13
2019-12-09 08:40:47 +01:00
..
lib Refactor C++ version of the Gilded Rose kata 2019-12-09 08:40:47 +01:00
src Refactor C++ version of the Gilded Rose kata 2019-12-09 08:40:47 +01:00
test Refactor C++ version of the Gilded Rose kata 2019-12-09 08:40:47 +01:00
.gitignore Refactor C++ version of the Gilded Rose kata 2019-12-09 08:40:47 +01:00
CMakeLists.txt Refactor C++ version of the Gilded Rose kata 2019-12-09 08:40:47 +01:00
README.md Refactor C++ version of the Gilded Rose kata 2019-12-09 08:40:47 +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 support C++17

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