JUCE  v5.1.1-3-g1a0b28c73
JUCE API
UnitTestRunner Class Reference

Runs a set of unit tests. More...

#include <juce_UnitTest.h>

Collaboration diagram for UnitTestRunner:

Classes

struct  TestResult
 Contains the results of a test. More...
 

Public Member Functions

 UnitTestRunner ()
 
virtual ~UnitTestRunner ()
 Destructor. More...
 
int getNumResults () const noexcept
 Returns the number of TestResult objects that have been performed. More...
 
const TestResultgetResult (int index) const noexcept
 Returns one of the TestResult objects that describes a test that has been run. More...
 
void runAllTests (int64 randomSeed=0)
 Runs all the UnitTest objects that currently exist. More...
 
void runTests (const Array< UnitTest *> &tests, int64 randomSeed=0)
 Runs a set of tests. More...
 
void runTestsInCategory (const String &category, int64 randomSeed=0)
 Runs all the UnitTest objects within a specified category. More...
 
void setAssertOnFailure (bool shouldAssert) noexcept
 Sets a flag to indicate whether an assertion should be triggered if a test fails. More...
 
void setPassesAreLogged (bool shouldDisplayPasses) noexcept
 Sets a flag to indicate whether successful tests should be logged. More...
 

Protected Member Functions

virtual void logMessage (const String &message)
 Logs a message about the current test progress. More...
 
virtual void resultsUpdated ()
 Called when the list of results changes. More...
 
virtual bool shouldAbortTests ()
 This can be overridden to let the runner know that it should abort the tests as soon as possible, e.g. More...
 

Private Member Functions

void addFail (const String &failureMessage)
 
void addPass ()
 
void beginNewTest (UnitTest *test, const String &subCategory)
 
void endTest ()
 

Private Attributes

bool assertOnFailure
 
String currentSubCategory
 
UnitTestcurrentTest
 
bool logPasses
 
Random randomForTest
 
OwnedArray< TestResult, CriticalSectionresults
 

Friends

class UnitTest
 

Detailed Description

Runs a set of unit tests.

You can instantiate one of these objects and use it to invoke tests on a set of UnitTest objects.

By using a subclass of UnitTestRunner, you can intercept logging messages and perform custom behaviour when each test completes.

See also
UnitTest

Constructor & Destructor Documentation

◆ UnitTestRunner()

UnitTestRunner::UnitTestRunner ( )

◆ ~UnitTestRunner()

virtual UnitTestRunner::~UnitTestRunner ( )
virtual

Destructor.

Member Function Documentation

◆ addFail()

void UnitTestRunner::addFail ( const String failureMessage)
private

◆ addPass()

void UnitTestRunner::addPass ( )
private

◆ beginNewTest()

void UnitTestRunner::beginNewTest ( UnitTest test,
const String subCategory 
)
private

◆ endTest()

void UnitTestRunner::endTest ( )
private

◆ getNumResults()

int UnitTestRunner::getNumResults ( ) const
noexcept

Returns the number of TestResult objects that have been performed.

See also
getResult

◆ getResult()

const TestResult* UnitTestRunner::getResult ( int  index) const
noexcept

Returns one of the TestResult objects that describes a test that has been run.

See also
getNumResults

◆ logMessage()

virtual void UnitTestRunner::logMessage ( const String message)
protectedvirtual

Logs a message about the current test progress.

By default this just writes the message to the Logger class, but you could override this to do something else with the data.

◆ resultsUpdated()

virtual void UnitTestRunner::resultsUpdated ( )
protectedvirtual

Called when the list of results changes.

You can override this to perform some sort of behaviour when results are added.

◆ runAllTests()

void UnitTestRunner::runAllTests ( int64  randomSeed = 0)

Runs all the UnitTest objects that currently exist.

This calls runTests() for all the objects listed in UnitTest::getAllTests().

If you want to run the tests with a predetermined seed, you can pass that into the randomSeed argument, or pass 0 to have a randomly-generated seed chosen.

◆ runTests()

void UnitTestRunner::runTests ( const Array< UnitTest *> &  tests,
int64  randomSeed = 0 
)

Runs a set of tests.

The tests are performed in order, and the results are logged. To run all the registered UnitTest objects that exist, use runAllTests().

If you want to run the tests with a predetermined seed, you can pass that into the randomSeed argument, or pass 0 to have a randomly-generated seed chosen.

◆ runTestsInCategory()

void UnitTestRunner::runTestsInCategory ( const String category,
int64  randomSeed = 0 
)

Runs all the UnitTest objects within a specified category.

This calls runTests() for all the objects listed in UnitTest::getTestsInCategory().

If you want to run the tests with a predetermined seed, you can pass that into the randomSeed argument, or pass 0 to have a randomly-generated seed chosen.

◆ setAssertOnFailure()

void UnitTestRunner::setAssertOnFailure ( bool  shouldAssert)
noexcept

Sets a flag to indicate whether an assertion should be triggered if a test fails.

This is true by default.

◆ setPassesAreLogged()

void UnitTestRunner::setPassesAreLogged ( bool  shouldDisplayPasses)
noexcept

Sets a flag to indicate whether successful tests should be logged.

By default, this is set to false, so that only failures will be displayed in the log.

◆ shouldAbortTests()

virtual bool UnitTestRunner::shouldAbortTests ( )
protectedvirtual

This can be overridden to let the runner know that it should abort the tests as soon as possible, e.g.

because the thread needs to stop.

Friends And Related Function Documentation

◆ UnitTest

friend class UnitTest
friend

Member Data Documentation

◆ assertOnFailure

bool UnitTestRunner::assertOnFailure
private

◆ currentSubCategory

String UnitTestRunner::currentSubCategory
private

◆ currentTest

UnitTest* UnitTestRunner::currentTest
private

◆ logPasses

bool UnitTestRunner::logPasses
private

◆ randomForTest

Random UnitTestRunner::randomForTest
private

◆ results

OwnedArray<TestResult, CriticalSection> UnitTestRunner::results
private

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