104 virtual void initialise();
109 virtual void shutdown();
150 template <
class ValueType>
153 bool result = exactlyEqual (actual, expected);
154 expectResultAndPrint (actual, expected, result,
"", failureMessage);
160 template <
class ValueType>
163 bool result = ! exactlyEqual (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)
324class JUCE_API UnitTestRunner
332 virtual ~UnitTestRunner();
379 TestResult() =
default;
381 explicit TestResult (
const String& name,
const String& subCategory)
435 friend class UnitTest;
437 UnitTest* currentTest =
nullptr;
438 String currentSubCategory;
440 bool assertOnFailure = true, logPasses = false;
443 void beginNewTest (UnitTest* test, const
String& subCategory);
447 void addFail (const
String& failureMessage);
449 JUCE_DECLARE_NON_COPYABLE (UnitTestRunner)
bool isEmpty() const noexcept
bool isNotEmpty() const noexcept
static Time JUCE_CALLTYPE getCurrentTime() noexcept
void runAllTests(int64 randomSeed=0)
void runTestsInCategory(const String &category, int64 randomSeed=0)
virtual bool shouldAbortTests()
const TestResult * getResult(int index) const noexcept
int getNumResults() const noexcept
void setAssertOnFailure(bool shouldAssert) noexcept
void runTests(const Array< UnitTest * > &tests, int64 randomSeed=0)
void setPassesAreLogged(bool shouldDisplayPasses) noexcept
virtual void logMessage(const String &message)
virtual void resultsUpdated()
const String & getName() const noexcept
const String & getCategory() const noexcept
void expectEquals(ValueType actual, ValueType expected, String failureMessage=String())
void expectGreaterThan(ValueType value, ValueType valueToCompareTo, String failureMessage=String())
UnitTest(const String &name, const String &category=String())
void beginTest(const String &testName)
void expect(bool testResult, const String &failureMessage=String())
void expectWithinAbsoluteError(ValueType actual, ValueType expected, ValueType maxAbsoluteError, String failureMessage=String())
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())