mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2025-12-12 12:22:12 +00:00
82 lines
3.2 KiB
Markdown
82 lines
3.2 KiB
Markdown
# 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](https://github.com/catchorg/Catch2) test framework in the `test/cpp_catch2_unittest` folder.
|
|
2. [Approval tests](https://github.com/approvals/ApprovalTests.cpp) with the [Catch2](https://github.com/catchorg/Catch2) test framework in the `test/cpp_catch2_approvaltest` folder.
|
|
* GoogleTest framework
|
|
1. Traditional unit test with the [GoogleTest](https://github.com/google/googletest) test framework in the `test/cpp_googletest_unittest` folder.
|
|
2. [Approval tests](https://github.com/approvals/ApprovalTests.cpp) with the [GoogleTest](https://github.com/google/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 .
|
|
|
|
The following test specific options for building with CMake are available.
|
|
|
|
* `BUILD_APPROVAL_TESTS_WITH_CATCH2:BOOL=ON`
|
|
This option builds the approval tests with the Catch2 test framework.
|
|
* `BUILD_UNIT_TESTS_WITH_CATCH2:BOOL=ON`
|
|
This option builds the unit tests with the Catch2 test framework.
|
|
* `BUILD_APPROVAL_TESTS_WITH_GTEST:BOOL=ON`
|
|
This option builds the approval tests with the GoogleTest test framework.
|
|
* `BUILD_UNIT_TESTS_WITH_GTEST:BOOL=ON`
|
|
This option builds the unit tests with the GoogleTest test framework.
|
|
|
|
For example, run the CMake configuration `cmake -DBUILD_APPROVAL_TESTS_WITH_CATCH2=OFF -DBUILD_UNIT_TESTS_WITH_CATCH2=OFF ..` to disable the Catch2 based tests.
|
|
|
|
### 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](https://www.jetbrains.com/clion/)
|
|
|
|
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
|
|
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`
|