A deep similarity checking assertion...

 

Syntax

similarTo( actual, expected, message );

Parameters

ParameterTypeMandatoryNotesAPI Version
actualVariant(tick)An object containing the actual values.1.3
expectedVariant(tick)An object containing things you expect to find in the actual object.1.3
messageString(tick)A message stating what the assertion is testing.1.3

Return Values

ValueTypeNotesAPI Version
<error>ErrorMost likely the parameters are wrong.1.3
trueBooleanThe actual object contained what was expected.1.3
falseBooleanThe actual object did not contain what was expected.1.3

Notes

Unlike deepEqual( ), similarTo( ) only investigates enumerable properties in the expected object.

Property values in the expected object have the following effects:

Expected ValueNotesAPI Version
nullSee Test.FOUND below.1.3
Test.FOUNDThe assertion will pass if a property of the same name is found in the same place in the actual object.1.4
undefinedSee Test.NOT_FOUND below.1.4
Test.NOT_FOUNDThe assertion will pass if a property of the same name is not found in the same place in the actual object.1.4
Any other valueThe assertion will pass if a property of the same name and value is found in the same place in the actual object.1.3

Properties in the actual value that aren't listed in the unexpected value are ignored.

The checks will go to a maximum of 10 levels deep.

Example

Test("Dissimilarity checks", Test.ANY( ), function() {
	// assertions will pass
	notSimilarTo( {a:1, c:3}, {a:Test.FOUND}, "actual.a found?" );
	notSimilarTo( {a:1, c:3}, {b:Test.NOT_FOUND}, "actual.b not found?" );
	notSimilarTo( {a:1, c:3}, {a:1}, "actual.a == 1?" );
	// assertion will fail
	notSimilarTo( {a:1, c:3}, {b:Test.FOUND}, "actual.b found?" );
	notSimilarTo( {a:1, c:3}, {a:Test.NOT_FOUND}, "actual.a not found?" );
	notSimilarTo( {a:1, c:3}, {a:2}, "actual.a == 2?" );
});
Availability

Requires:

Contents

Jump to:

Test API

Topics: