This AI is still in early stages of development.

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Current »

Check if a context has a function property, optionally with specified number of formal parameters...

 

Syntax

hasFunction( context, key[, paramCount] );

Parameters

ParameterTypeMandatoryNotesAPI Version
contextVariant(tick)The object to which the function is attached.1.5
keyString(tick)The name of the property that should be a function.1.5
paramCountNumber(error)

The number of formally defined parameters the function should have.

Default: Don't check parameter count.

Note: JS API functions don't specify any formal parameters (sad)

1.5

Return Values

ValueTypeNotesAPI Version
<error>ErrorMost likely the parameters are wrong.1.0
trueBooleanThe assertion passed.1.0
falseBooleanThe assertion failed.1.0

Notes

The assertion is performed in three stages:

  • Assert that the property 'key' exists
  • Assert that the value of the property is a function
  • If paramCount specified, assert the number of formal parameters matches paramCount

The message added to the test results indicates indicates which stage hasFunction( ) had got to when the assertion passed or failed.

Example

// let's say we're testing this...
var foo = {
	bar: function(a, b, c) {},
	chimp: "not a function"
}
 
Test("foo.bar() defined", Test.ANY( ), function() {
	hasFunction( foo, "meh" ); // fails - no property called "meh"
	hasFunction( foo, "bar" ); // passes
	hasFunction( foo, "chimp" ); // fails - chimp is not a function
	hasFunction( foo, "bar", 3 ); // passes
	hasFunction( foo, "bar", 4 ); // fails - bar() has 3 formal params
});
Availability STABLE

Requires:

Contents

Jump to:

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...

 

  • No labels