Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Excerpt |
---|
Causes the test to fail if it does not generate the specified number of results... |
Syntax
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Test("Basic syntax", Test.EXPECT( numResults ), function() { // The test will fail if it does not produce exactly numResults results }); |
Parameters
Parameter | Type | Mandatory | Notes | API Version |
---|---|---|---|---|
numResults | Number | A non-negative integer stating how many results the test must produce. If the test does not provide the specified number of results, it will fail regardless of any other criteria. | 1.0 |
Return values
Value | Type | Notes | API Version |
---|---|---|---|
<mode> | Object | The mode object is associated with the unit test defined in the same Test() invocation. | 1.0 |
<error> | Error | An error will be thrown if numResults is missing or invalid, preventing the test from being run. | 1.0 |
Effect on test
The test is treated as synchronous and its pass/fail state will be determined as soon as the Unit Test function is finished processingTests has been processed...
Fail conditions
The unit test will be deemed to have failed if any of the following occur:
- The test does not generate exactly numResults results
- One or more Test Assertions fail
- An uncaught exception is thrown
- An ABORT( ) or REQUIRE( ) signal is thrown
Pass conditions
If the test has not failed, it will be deemed to have passed.
Examples
The following test will fail. because it will generate no results. Why? Because the variable scope of Unit TestTests functions is altered during testing and the "thingsToCheck" variable will not be available. However, the Test.EXPECT( ) mode function is run immediately, while it still has access to "thingsToCheck" and thus indicate that the test expects 3 results...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
var thingsToCheck = ["chat", "include", "playerData"]; Test("Check things", Test.EXPECT( thingsToCheck.length ), function() { // in here, thingsToCheck == undefined! if (thingsToCheck && thingsToCheck.length) { thingsToCheck.forEach(function(thing) { hasNative( thing, thing+" is native?" ); }); } }); |
Having been informed of the issue with the number of results, you'd then go in and fix the test by passing in "thingsToCheck" as the test settings (4rd parameter on Test(), and remember to define the parameter in the Unit TestTests function)...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
var thingsToCheck = ["chat", "include", "playerData"]; Test("Check things", Test.EXPECT( thingsToCheck.length ), function(thingsToCheck) { // in here, thingsToCheck == undefined! if (thingsToCheck && thingsToCheck.length) { thingsToCheck.forEach(function(thing) { hasNative( thing, thing+" is native?" ); }); } }, thingsToCheck); |
Another example could be...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Test("Test namespace properties", Test.EXPECT( 4 ), function() { // get list of property names on Test namespace var keys = Object.getOwnPropertyNames(_global.Test); // expecting just the 4 mode functions: ANY, EXPECT, ASYNCH, APPEND? // this test will fail because there's at least a 5th: "Module" keys.forEach(function(key) { ok( true, key ); // add property name to results }); // so at least 5 results are generated = test fails }); |
Div | ||||||
---|---|---|---|---|---|---|
| ||||||
Availability
Requires:
|
Div | ||||
---|---|---|---|---|
| ||||
ContentsJump to:
|
Div | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
Test APITopics:
|