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 Tests 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...
Test will fail if it doesn't generate 3 results...
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 Tests function)...
Test will fail if it doesn't generate 3 results...
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...
Have I missed any properties?
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
});
similarTo( ) — A deep similarity checking assertion...
notSimilarTo( ) — A deep dissimilarity spotting assertion...
Test Signals — Signals 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...