Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
Excerpt

The unit test function, responsible for performing one or more Test Assertions...

 

Syntax

Warning
iconfalse

The scope of unit test functions is manipulated before a test runs, so you cannot reference variables defined in the function's scope chain (closures will not work either).

If you want to reference variables external to the Unit Test function, pass them in via a settings object defined in the associated Test() invocation (see Example section below).

Code Block
themeRDark
languagejavascript
linenumberstrue
function(settings[dataRef]) {
	// code and assertions
}

Parameters

settings settings data passed in to Test(), if applicable
ParameterTypeMandatoryNotesAPI Version
dataRefVariant(error)

You can use the first formal parameter of the function to get a custom-named reference to the testData associated with the unit test.

Note: The

test settings will always be available via the testData variable (see Notes section below for details).

1.0

Return value

The return value is not processed.

Notes

Within the unit test, the following additional variables and properties are also available:

This variable is defined by Test API and is thus safer to use within tests than the equivalent global defined by Util API moduleSettings for settings the variable The settings associated with your unit test (also available via the settings parameter on the unit test function) settings associated with your unit test your test , with the following properties:
  • testMode.name = "ASYNCH"
  • testMode.appendTo = name of the Test.ASYNCH() test that this test appends
  • testMode.after = "WAIT"

An object describing the test mode, with the following mandatory properties:

  • testMode.name = either "ANY", "EXPECT" or "ASYNCH" depending on the test mode
  • testMode.after = either "DONE" or "WAIT" depending on the test mode
There may be several other properties depending on the test mode – For more information see Test API - Dev Notes
Property / VariableTypeTest.APPEND( ) modeAny other modeNotesAPI Version
_globalObject

A reference to the global object (not scope).

The _global var was added to allow Test API to run independently of Util API. If you don't have Util API installed, you can use _global to get the same effect as global.

1.0
modulePathStringThe modulePath that the test is running in – see Test.module() for more information.1.1
moduleSettingsmoduleData

Object

Undefined

The

data associated with the modulePath, if specified in the Module Lifecycle Object.

If the module doesn't have

any data,

moduleData will have a value of undefined.

1.1
this.settingsdataVariant

The settings associated with For tests of mode Test.APPEND( ) this will be the testData for the Test.ASYNCH( ) that initiated the current asynchronous test session.

For all other test modes, it will be the testData for the current test – same value as testData variable below...

1.0
testSettingstestDataVariant

The

data associated with the current unit test, if applicable.

Will have a value of undefined if no testData was defined when the unit test was created.

1.0
testNameStringThe name of the current unit test.1.0
testModeObject

An object describing the

mode

in which the test is being run – for more information see Test API - Dev Notes.

1.0
currentTestObjectA reference to the context of the current test, useful for .call and .apply, etc.1.0

Example

Code Block
themeRDark
languagejavascript
linenumberstrue
// Define some test data for our unit test
var mySettingsdata = {bar: "fish"};
 
// The test data is passed in as 3rd parameter of the Test() function
// and is accessible via the testData variable
Test("Foo", Test.ANY( ), function(settings) {
	comment( "My first unit test!" );
	// In here, 'data' is undefined as the function is re-scoped
	// to the unit test instance it's running within
	equal( "fish", data.bar, "data.bar == 'fish'?" ); // error: data not defined
	equal( "fish", settingstestData.bar, "settingstestData.bar == 'fish'?" ); // pass
}, data); // <-- test data passed in here
 
// If you wanted to access the testData via a custom named variable,
// specify it's name as the first parameter to the unit test function...
Test("Foo2", Test.ANY( ), function(data) { // <-- custom reference to testData
	comment( "My second unit test!" );
	// Now you can access testData via 'data' parameter
	equal( "fish", data.bar, "data.bar == 'fish'" ); // pass
	// Note that testData variable will still be defined...
    equal( "fish", testData.bar, "testData.bar == 'fish'" ); // pass
}, mySettingsdata);
Div
classbox
Availability
Status
colourGreen
titleStable

Requires:

Div
classbox
Contents

Jump to:

Table of Contents
maxLevel5

Div
classbox

Test API

Topics:

Child pages (Children Display)
alltrue
depthall
pageTest API
excerpttrue