Go to the documentation of this file. 1 #ifndef UNIT_TEST_UTILS
2 #define UNIT_TEST_UTILS
4 #ifndef TEST_RESOURCES_DIR
5 #define TEST_RESOURCES_DIR "../TestResources"
6 #define TEST_TMP_DIR TEST_RESOURCES_DIR "/tmp"
11 #include <boost/test/execution_monitor.hpp>
12 #include <boost/test/framework.hpp>
13 #include <boost/test/results_collector.hpp>
14 #include <boost/test/tree/observer.hpp>
15 #include <boost/test/unit_test.hpp>
16 #include "./fakeit.hpp"
18 #define CSCTEST_HAS_ARGS(...) CSCTEST_HAS_ARGS_IMPL(__VA_ARGS__, 1, 0)
19 #define CSCTEST_HAS_ARGS_IMPL(_1, _2, N, ...) N
20 #define CSCTEST_ASSERT(expr, ...) \
21 if (CSCTEST_HAS_ARGS(__VA_ARGS__)) { \
23 LOG_ERROR("assert failed - 🧾 stacktrace = " + getStackTrace()); \
26 BOOST_TEST(expr __VA_OPT__(, ) __VA_ARGS__);
28 using std::string, std::function, std::vector,
std::to_string, boost::unit_test::assertion_result, boost::test_tools::tt_detail::tolerance_manip_delay, boost::test_tools::tolerance;
30 using namespace fakeit;
31 using namespace boost::unit_test::framework;
33 namespace fs = std::filesystem;
38 void exception_caught(boost::execution_exception
const &error)
override;
39 void assertion_result(
enum assertion_result result)
override;
40 bool wasAnExceptionCaught();
41 void resetExceptionTracking();
42 void test_finish()
override;
47 std::unique_ptr<CscLogger>
logger;
70 vector<CscEnvironmentSimulator *> createdEnvironmentSimulators;
76 template <
class MockedType>
80 MockedType &instanceReference = mock.get();
81 std::shared_ptr<MockedType> sharedPtr(&instanceReference);
82 MockedType *pointer = sharedPtr.get();
86 template <
class MockedType>
90 MockedType &instanceReference = mock.get();
99 for (
int i = 0;
i < left.size();
i++) {
100 if constexpr (std::is_same<T, double>::value) {
116 template <
typename T>
117 concept
IsStringLike = std::is_same_v<T, const string> || std::is_same_v<T, string> || std::is_same_v<T, char *> || std::is_same_v<T, const char *>;
118 template <IsStringLike T1, IsStringLike T2>
123 template <
class T1,
class T2>
132 template <
class T1,
class T2>
149 template <
class TException>
154 }
catch (
const TException &e) {
concept IsStringLike
Definition: unit-test.h:117
NLOHMANN_BASIC_JSON_TPL_DECLARATION std::string to_string(const NLOHMANN_BASIC_JSON_TPL &j)
user-defined to_string function for JSON values
Definition: json.hpp:26470
void assertNotNull(T *object)
Definition: unit-test.h:137
#define CSCTEST_ASSERT(expr,...)
Definition: unit-test.h:20
unique_ptr< CscLogger > logger
Definition: unit-test.h:53
ptr< MockedType > mockToSharedPointer(Mock< MockedType > &mock)
Definition: unit-test.h:87
T2 optional< double > decimalTolerance
Definition: unit-test.h:125
string getCurrentTestName()
Definition: unit-test.cpp:60
T2 right
Definition: unit-test.h:125
Definition: unit-test.h:59
T2 optional< double > class T2 void assertNotEquals(T1 left, T2 right)
Definition: unit-test.h:133
static ConscienceTestObserver * observer
Definition: unit-test.h:52
Definition: unit-test.h:35
MockedType * mockToPointer(Mock< MockedType > &mock)
Definition: unit-test.h:77
void assertThrows(function< void()> action)
Definition: unit-test.h:150
static std::unique_ptr< CscLogger > logger
Definition: gltfHelpers.cpp:6
fs::path getTestTempPath(const fs::path &relativePath)
Definition: unit-test.cpp:63
j template void())
Definition: json.hpp:4189
Definition: unit-test.h:50
void assertTrue(const T &boolValue)
Definition: unit-test.h:108
Definition: CscEntityReflexion.h:50
void assertVectorsEqual(const vector< T > &left, const vector< T > &right)
Definition: unit-test.h:97
Definition: CscEnvironmentSimulator.h:31
requires(!IsStringLike< T1 >) void assertEquals(T1 left
void assertEquals(T1 left, T2 right)
Definition: unit-test.h:119
void assertFileContent(const fs::path &path, const string &expectedContent)
Definition: unit-test.cpp:95
std::shared_ptr< T > ptr
Definition: CscCommon.h:29
void assertFalse(const T &boolValue)
Definition: unit-test.h:112
int i
Definition: HybridAStar.cpp:191