104 virtual void initialise();
109 virtual void shutdown();
123 void beginTest (
const String& testName);
144 void expect (
bool testResult,
const String& failureMessage =
String());
150 template <
class ValueType>
153 bool result = actual == expected;
154 expectResultAndPrint (actual, expected, result,
"", failureMessage);
160 template <
class ValueType>
163 bool result = value != valueToCompareTo;
164 expectResultAndPrint (value, valueToCompareTo, result,
"unequal to", failureMessage);
170 template <
class ValueType>
173 bool result = value > valueToCompareTo;
174 expectResultAndPrint (value, valueToCompareTo, result,
"greater than", failureMessage);
180 template <
class ValueType>
183 bool result = value < valueToCompareTo;
184 expectResultAndPrint (value, valueToCompareTo, result,
"less than", failureMessage);
190 template <
class ValueType>
193 bool result = value >= valueToCompareTo;
194 expectResultAndPrint (value, valueToCompareTo, result,
"greater or equal to", failureMessage);
200 template <
class ValueType>
203 bool result = value <= valueToCompareTo;
204 expectResultAndPrint (value, valueToCompareTo, result,
"less or equal to", failureMessage);
211 template <
class ValueType>
214 const ValueType diff = std::abs (actual - expected);
215 const bool result = diff <= maxAbsoluteError;
217 expectResultAndPrint (actual, expected, result,
" within " +
String (maxAbsoluteError) +
" of" , failureMessage);
222 #define expectDoesNotThrow(expr) \
230 expect (false, "Expected: does not throw an exception, Actual: throws."); \
234 #define expectThrows(expr) \
238 expect (false, "Expected: throws an exception, Actual: does not throw."); \
246 #define expectThrowsType(expr, type) \
250 expect (false, "Expected: throws an exception of type " #type ", Actual: does not throw."); \
258 expect (false, "Expected: throws an exception of type " #type ", Actual: throws another type."); \
265 void logMessage (
const String& message);
285 template <
class ValueType>
286 void expectResultAndPrint (ValueType value, ValueType valueToCompareTo,
bool result,
292 failureMessage <<
" -- ";
294 failureMessage <<
"Expected value" << (compDescription.
isEmpty() ?
"" :
" ")
295 << compDescription <<
": " << valueToCompareTo
296 <<
", Actual value: " << value;
299 expect (result, failureMessage);
303 const String name, category;
304 UnitTestRunner* runner =
nullptr;
306 JUCE_DECLARE_NON_COPYABLE (UnitTest)
350 void runAllTests (int64 randomSeed = 0);
358 void runTestsInCategory (
const String& category, int64 randomSeed = 0);
363 void setAssertOnFailure (
bool shouldAssert) noexcept;
368 void setPassesAreLogged (
bool shouldDisplayPasses) noexcept;
396 int getNumResults() const noexcept;
401 const
TestResult* getResult (
int index) const noexcept;
407 virtual
void resultsUpdated();
413 virtual
void logMessage (const
String& message);
418 virtual
bool shouldAbortTests();
425 String currentSubCategory;
427 bool assertOnFailure = true, logPasses = false;
434 void addFail (const
String& failureMessage);
bool isEmpty() const noexcept
bool isNotEmpty() const noexcept
void expectEquals(ValueType actual, ValueType expected, String failureMessage=String())
void expectGreaterThan(ValueType value, ValueType valueToCompareTo, String failureMessage=String())
const String & getName() const noexcept
void expectWithinAbsoluteError(ValueType actual, ValueType expected, ValueType maxAbsoluteError, String failureMessage=String())
const String & getCategory() const noexcept
void expectLessThan(ValueType value, ValueType valueToCompareTo, String failureMessage=String())
void expectLessOrEqual(ValueType value, ValueType valueToCompareTo, String failureMessage=String())
void expectNotEquals(ValueType value, ValueType valueToCompareTo, String failureMessage=String())
void expectGreaterOrEqual(ValueType value, ValueType valueToCompareTo, String failureMessage=String())