108 virtual void initialise();
113 virtual void shutdown();
120 virtual void runTest() = 0;
127 void beginTest (
const String& testName);
148 void expect (
bool testResult,
const String& failureMessage =
String());
154 template <
class ValueType>
157 bool result = actual == expected;
158 expectResultAndPrint (actual, expected, result,
"", failureMessage);
164 template <
class ValueType>
167 bool result = value != valueToCompareTo;
168 expectResultAndPrint (value, valueToCompareTo, result,
"unequal to", failureMessage);
174 template <
class ValueType>
177 bool result = value > valueToCompareTo;
178 expectResultAndPrint (value, valueToCompareTo, result,
"greater than", failureMessage);
184 template <
class ValueType>
187 bool result = value < valueToCompareTo;
188 expectResultAndPrint (value, valueToCompareTo, result,
"less than", failureMessage);
194 template <
class ValueType>
197 bool result = value >= valueToCompareTo;
198 expectResultAndPrint (value, valueToCompareTo, result,
"greater or equal to", failureMessage);
204 template <
class ValueType>
207 bool result = value <= valueToCompareTo;
208 expectResultAndPrint (value, valueToCompareTo, result,
"less or equal to", failureMessage);
215 template <
class ValueType>
218 const ValueType diff = std::abs (actual - expected);
219 const bool result = diff <= maxAbsoluteError;
221 expectResultAndPrint (actual, expected, result,
" within " +
String (maxAbsoluteError) +
" of" , failureMessage);
226 #define expectDoesNotThrow(expr) \ 234 expect (false, "Expected: does not throw an exception, Actual: throws."); \ 238 #define expectThrows(expr) \ 242 expect (false, "Expected: throws an exception, Actual: does not throw."); \ 250 #define expectThrowsType(expr, type) \ 254 expect (false, "Expected: throws an exception of type " #type ", Actual: does not throw."); \ 262 expect (false, "Expected: throws an exception of type " #type ", Actual: throws another type."); \ 269 void logMessage (
const String& message);
289 template <
class ValueType>
290 void expectResultAndPrint (ValueType value, ValueType valueToCompareTo,
bool result,
296 failureMessage <<
" -- ";
298 failureMessage <<
"Expected value" << (compDescription.
isEmpty() ?
"" :
" ")
299 << compDescription <<
": " << valueToCompareTo
300 <<
", Actual value: " << value;
303 expect (result, failureMessage);
307 const String name, category;
310 JUCE_DECLARE_NON_COPYABLE (
UnitTest)
354 void runAllTests (int64 randomSeed = 0);
362 void runTestsInCategory (
const String& category, int64 randomSeed = 0);
367 void setAssertOnFailure (
bool shouldAssert) noexcept;
372 void setPassesAreLogged (
bool shouldDisplayPasses) noexcept;
400 int getNumResults() const noexcept;
405 const
TestResult* getResult (
int index) const noexcept;
411 virtual
void resultsUpdated();
417 virtual
void logMessage (const
String& message);
422 virtual
bool shouldAbortTests();
428 UnitTest* currentTest =
nullptr;
429 String currentSubCategory;
431 bool assertOnFailure = true, logPasses = false;
434 void beginNewTest (UnitTest* test, const
String& subCategory);
438 void addFail (const
String& failureMessage);
int passes
The number of UnitTest::expect() calls that succeeded.
#define JUCE_API
This macro is added to all JUCE public class declarations.
void expectGreaterOrEqual(ValueType value, ValueType valueToCompareTo, String failureMessage=String())
Checks whether a value is greater or equal to a comparison value.
void expectGreaterThan(ValueType value, ValueType valueToCompareTo, String failureMessage=String())
Checks whether a value is greater than a comparison value.
bool isNotEmpty() const noexcept
Returns true if the string contains at least one character.
const String & getName() const noexcept
Returns the name of the test.
const String & getCategory() const noexcept
Returns the category of the test.
A special array for holding a list of strings.
void expectEquals(ValueType actual, ValueType expected, String failureMessage=String())
Compares a value to an expected value.
int failures
The number of UnitTest::expect() calls that failed.
StringArray messages
A list of messages describing the failed tests.
This is a base class for classes that perform a unit test.
String subcategoryName
The name of the current subcategory (i.e.
Runs a set of unit tests.
String unitTestName
The main name of this test (i.e.
void expectLessOrEqual(ValueType value, ValueType valueToCompareTo, String failureMessage=String())
Checks whether a value is less or equal to a comparison value.
Holds a resizable array of primitive or copy-by-value objects.
void expectLessThan(ValueType value, ValueType valueToCompareTo, String failureMessage=String())
Checks whether a value is less than a comparison value.
bool isEmpty() const noexcept
Returns true if the string contains no characters.
A random number generator.
An array designed for holding objects.
Contains the results of a test.
void expectNotEquals(ValueType value, ValueType valueToCompareTo, String failureMessage=String())
Checks whether a value is not equal to a comparison value.
void expectWithinAbsoluteError(ValueType actual, ValueType expected, ValueType maxAbsoluteError, String failureMessage=String())
Computes the difference between a value and a comparison value, and if it is larger than a specified ...