Loading...
Searching...
No Matches
juce::UnitTest Class Referenceabstract

`#include <juce_UnitTest.h>`

## Public Member Functions

| UnitTest (const String &name, const String &category=String())
virtual | ~UnitTest ()
const String & | getName () const noexcept
const String & | getCategory () const noexcept
void | performTest (UnitTestRunner *runner)
virtual void | initialise ()
virtual void | shutdown ()
virtual void | runTest ()=0
void | beginTest (const String &testName)
void | expect (bool testResult, const String &failureMessage=String())
template<class ValueType>
void | expectEquals (ValueType actual, ValueType expected, String failureMessage=String())
template<class ValueType>
void | expectNotEquals (ValueType value, ValueType valueToCompareTo, String failureMessage=String())
template<class ValueType>
void | expectGreaterThan (ValueType value, ValueType valueToCompareTo, String failureMessage=String())
template<class ValueType>
void | expectLessThan (ValueType value, ValueType valueToCompareTo, String failureMessage=String())
template<class ValueType>
void | expectGreaterOrEqual (ValueType value, ValueType valueToCompareTo, String failureMessage=String())
template<class ValueType>
void | expectLessOrEqual (ValueType value, ValueType valueToCompareTo, String failureMessage=String())
template<class ValueType>
void | expectWithinAbsoluteError (ValueType actual, ValueType expected, ValueType maxAbsoluteError, String failureMessage=String())
void | logMessage (const String &message)
Random | getRandom () const

## Static Public Member Functions

static Array< UnitTest * > & | getAllTests ()
static Array< UnitTest * > | getTestsInCategory (const String &category)
static StringArray | getAllCategories ()

## Detailed Description

This is a base class for classes that perform a unit test.

To write a test using this class, your code should look something like this:

class MyTest : public UnitTest
{
public:
MyTest() : UnitTest ("Foobar testing") {}
void runTest() override
{
beginTest ("Part 1");
expect (myFoobar.doesSomething());
expect (myFoobar.doesSomethingElse());
beginTest ("Part 2");
expect (myOtherFoobar.doesSomething());
expect (myOtherFoobar.doesSomethingElse());
...etc..
}
};
// Creating a static instance will automatically add the instance to the array
// returned by UnitTest::getAllTests(), so the test will be included when you call
// UnitTestRunner::runAllTests()
static MyTest test;
juce::UnitTest::UnitTest
UnitTest(const String &name, const String &category=String())
Definition juce_UnitTest.cpp:26
juce::UnitTest::beginTest
void beginTest(const String &testName)
Definition juce_UnitTest.cpp:89
juce::UnitTest::expect
void expect(bool testResult, const String &failureMessage=String())
Definition juce_UnitTest.cpp:97
juce::UnitTest::runTest
virtual void runTest()=0

To run a test, use the UnitTestRunner class.

See also
  UnitTestRunner

Definition at line 69 of file juce_UnitTest.h.

## Constructor & Destructor Documentation

## UnitTest()

juce::UnitTest::UnitTest | ( | const String & | name,
|  | const String & | category = String() )

explicit

Creates a test with the given name and optionally places it in a category.

Definition at line 26 of file juce_UnitTest.cpp.

## ~UnitTest()

juce::UnitTest::~UnitTest | ( |  | ) |

virtual

Destructor.

Definition at line 32 of file juce_UnitTest.cpp.

## Member Function Documentation

## beginTest()

void juce::UnitTest::beginTest | ( | const String & | testName | ) |

Tells the system that a new subsection of tests is beginning. This should be called from your runTest() method, and may be called as many times as you like, to demarcate different sets of tests.

Definition at line 89 of file juce_UnitTest.cpp.

Referenced by runTest().

## expect()

void juce::UnitTest::expect | ( | bool | testResult,
|  | const String & | failureMessage = String() )

Checks that the result of a test is true, and logs this result.

In your runTest() method, you should call this method for each condition that you want to check, e.g.

void runTest()
{
beginTest ("basic tests");
expect (x + y == 2);
expect (getThing() == someThing);
...etc...
}

If testResult is true, a pass is logged; if it's false, a failure is logged. If the failure message is specified, it will be written to the log if the test fails.

Definition at line 97 of file juce_UnitTest.cpp.

Referenced by runTest().

## expectEquals()

template<class ValueType>

void juce::UnitTest::expectEquals | ( | ValueType | actual,
|  | ValueType | expected,
|  | String | failureMessage = String() )

inline

Compares a value to an expected value. If they are not equal, prints out a message containing the expected and actual values.

Definition at line 151 of file juce_UnitTest.h.

## expectGreaterOrEqual()

template<class ValueType>

void juce::UnitTest::expectGreaterOrEqual | ( | ValueType | value,
|  | ValueType | valueToCompareTo,
|  | String | failureMessage = String() )

inline

Checks whether a value is greater or equal to a comparison value. If this check fails, prints out a message containing the actual and comparison values.

Definition at line 191 of file juce_UnitTest.h.

## expectGreaterThan()

template<class ValueType>

void juce::UnitTest::expectGreaterThan | ( | ValueType | value,
|  | ValueType | valueToCompareTo,
|  | String | failureMessage = String() )

inline

Checks whether a value is greater than a comparison value. If this check fails, prints out a message containing the actual and comparison values.

Definition at line 171 of file juce_UnitTest.h.

## expectLessOrEqual()

template<class ValueType>

void juce::UnitTest::expectLessOrEqual | ( | ValueType | value,
|  | ValueType | valueToCompareTo,
|  | String | failureMessage = String() )

inline

Checks whether a value is less or equal to a comparison value. If this check fails, prints out a message containing the actual and comparison values.

Definition at line 201 of file juce_UnitTest.h.

## expectLessThan()

template<class ValueType>

void juce::UnitTest::expectLessThan | ( | ValueType | value,
|  | ValueType | valueToCompareTo,
|  | String | failureMessage = String() )

inline

Checks whether a value is less than a comparison value. If this check fails, prints out a message containing the actual and comparison values.

Definition at line 181 of file juce_UnitTest.h.

## expectNotEquals()

template<class ValueType>

void juce::UnitTest::expectNotEquals | ( | ValueType | value,
|  | ValueType | valueToCompareTo,
|  | String | failureMessage = String() )

inline

Checks whether a value is not equal to a comparison value. If this check fails, prints out a message containing the actual and comparison values.

Definition at line 161 of file juce_UnitTest.h.

## expectWithinAbsoluteError()

template<class ValueType>

void juce::UnitTest::expectWithinAbsoluteError | ( | ValueType | actual,
|  | ValueType | expected,
|  | ValueType | maxAbsoluteError,
|  | String | failureMessage = String() )

inline

Computes the difference between a value and a comparison value, and if it is larger than a specified maximum value, prints out a message containing the actual and comparison values and the maximum allowed error.

Definition at line 212 of file juce_UnitTest.h.

## getAllCategories()

StringArray juce::UnitTest::getAllCategories | ( |  | ) |

static

Returns a StringArray containing all of the categories of UnitTests that have been registered.

Definition at line 57 of file juce_UnitTest.cpp.

## getAllTests()

Array< UnitTest * > & juce::UnitTest::getAllTests | ( |  | ) |

static

Returns the set of all UnitTest objects that currently exist.

Definition at line 37 of file juce_UnitTest.cpp.

Referenced by getAllCategories(), getTestsInCategory(), juce::UnitTestRunner::runAllTests(), UnitTest(), and ~UnitTest().

## getCategory()

const String & juce::UnitTest::getCategory | ( |  | ) | const

inline noexcept

Returns the category of the test.

Definition at line 83 of file juce_UnitTest.h.

## getName()

const String & juce::UnitTest::getName | ( |  | ) | const

inline noexcept

Returns the name of the test.

Definition at line 80 of file juce_UnitTest.h.

## getRandom()

Random juce::UnitTest::getRandom | ( |  | ) | const

Returns a shared RNG that all unit tests should use. If a test needs random numbers, it's important that when an error is found, the exact circumstances can be re-created in order to re-test the problem, by repeating the test with the same random seed value. To make this possible, the UnitTestRunner class creates a master seed value for the run, writes this number to the log, and then this method returns a Random object based on that seed. All tests should only use this method to create any Random objects that they need.

Note that this method will return an identical object each time it's called for a given run, so if you need several different Random objects, the best way to do that is to call Random::combineSeed() on the result to permute it with a constant value.

Definition at line 108 of file juce_UnitTest.cpp.

## getTestsInCategory()

Array< UnitTest * > juce::UnitTest::getTestsInCategory | ( | const String & | category | ) |

static

Returns the set of UnitTests in a specified category.

Definition at line 43 of file juce_UnitTest.cpp.

Referenced by juce::UnitTestRunner::runTestsInCategory().

## initialise()

void juce::UnitTest::initialise | ( |  | ) |

virtual

You can optionally implement this method to set up your test. This method will be called before runTest().

Definition at line 68 of file juce_UnitTest.cpp.

Referenced by performTest().

## logMessage()

void juce::UnitTest::logMessage | ( | const String & | message | ) |

Writes a message to the test log. This can only be called from within your runTest() method.

Definition at line 81 of file juce_UnitTest.cpp.

## performTest()

void juce::UnitTest::performTest | ( | UnitTestRunner * | runner | ) |

Runs the test, using the specified UnitTestRunner. You shouldn't need to call this method directly - use UnitTestRunner::runTests() instead.

Definition at line 71 of file juce_UnitTest.cpp.

## runTest()

virtual void juce::UnitTest::runTest | ( |  | ) |

pure virtual

Implement this method in your subclass to actually run your tests.

The content of your implementation should call beginTest() and expect() to perform the tests.

Referenced by performTest().

## shutdown()

void juce::UnitTest::shutdown | ( |  | ) |

virtual

You can optionally implement this method to clear up after your test has been run. This method will be called after runTest() has returned.

Definition at line 69 of file juce_UnitTest.cpp.

Referenced by performTest().

The documentation for this class was generated from the following files:

- juce_UnitTest.h
- juce_UnitTest.cpp