(info) This AI is still in early stages of development.

Test Modes

Defines the mode in which a unit test is run...

 

Overview

When defining a Unit Tests with Test(), a "test mode" is required to define the way in which the test will be processed.

There are currently 4 modes available:

ModeNotesAPI Version
Test.ANY()

A basic test test which will pass if none of it's assertions fail and no test-failing Test Signals are triggered.

1.0
Test.EXPECT()The same as Test.ANY( ) but requires a specific number of results to be logged before allowing a test to pass.1.0
Test.ASYNCH()

A asynchronous test that can have results added to it by subsequent Test.APPEND( ) tests. The test will remain active until it either fails, passes or times-out. Very useful for testing non-sequential events.

1.0
Test.APPEND()Appends results to a specific Test.ASYNCH( ) if that test is currently active.1.0

Synchronous vs. Asynchronous

Each test runs in a test session. Only one session can be running at any given time.

The Test.ANY( ) and Test.EXPECT( ) modes are synchronous – the state of the test will always be determined at the end of the unit test. Essentially, each test with these modes has it's own session in which it is the only test that will run.

The Test.ASYNCH( ) mode, however, can be either synchronous or asynchronous:

  • If the test passes or fails, it will act like a Test.ANY( ) or Test.EXPECT( ).
  • If the test state has not been determined at the end of the test, an asynchronous session will start, allowing subsequent Test.APPEND( ) mode tests to add more results to the test.

Asynchronous tests are useful for testing events, where there will be a gap between starting the test and the subsequent results being obtained. For more information on asynchronous testing, see Test.ASYNCH( ).

Availability STABLE

Requires:

Test API

Topics:

  • Test()Define a unit test and it's configuration...
  • Test ModulesA test module groups one or more unit tests and provides additional lifecycle settings for those tests...
  • Test ModesDefines the mode in which a unit test is run...
    • Test.ANY( )The most basic unit test mode...
    • Test.EXPECT( )Causes the test to fail if it does not generate the specified number of results...
    • Test.ASYNCH( )Causes a test to keep running until it either passes, fails or times-out...
    • Test.APPEND( )Appends results to a specific asynchronous test session...
  • Unit TestsThe unit test function, responsible for performing one or more Test Assertions...
  • Test AssertionsAssertions are used to perform various tests and annotations within a unit test...
    • comment( )Adds a comment to the test results...
    • ok( )A simple state checking assertion...
    • hasNative( )Assert presence of a native property on the global object...
    • hasFunction( )Check if a context has a function property, optionally with specified number of formal parameters...
    • equal( )A basic equality checking assertion...
    • notEqual( )A basic inequality checking assertion...
    • strictEqual( )A strict equality checking assertion...
    • notStrictEqual( )A strict inequality checking assertion...
    • deepEqual( )A deep equality checking assertion...
    • notDeepEqual( )A deep inequality checking assertion...
    • similarTo( )A deep similarity checking assertion...
    • notSimilarTo( )A deep dissimilarity spotting assertion...
  • Test SignalsSignals are used to prematurely terminate Unit Tests...
    • REQUIRE( )Check whether a test or group of tests have passed. If the requirement fails, a RequireSignal will be sent which terminates the current test and marks it as failed.
    • ABORT( )Aborts the current test, marking it as failed in the process...
    • FINISH( )Terminates the test as if it had finished normally...
  • Test EventsEvents defined by Test API...
  • Test ResultsAfter testing is finished, output results...
  • Test API - Dev NotesDeveloper notes for this API...