This AI is still in early stages of development.
hasFunction( )
- Aubergine
Owned by Aubergine
Check if a context has a function property, optionally with specified number of formal parameters...
Ā
Syntax
hasFunction( context, key[, paramCount] );
Parameters
Parameter | Type | Mandatory | Notes | API Version |
---|---|---|---|---|
context | Variant | The object to which the function is attached. | 1.5 | |
key | String | The name of the property that should be a function. | 1.5 | |
paramCount | Number | 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 | 1.5 |
Return Values
Value | Type | Notes | API Version |
---|---|---|---|
<error> | Error | Most likely the parameters are wrong. | 1.0 |
true | Boolean | The assertion passed. | 1.0 |
false | Boolean | The 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 });
Contents
Jump to:
Test API
Topics:
- Test() ā Define a unit test and it's configuration...
- Test Modules ā A test module groups one or more unit tests and provides additional lifecycle settings for those tests...
- Test.module() ā Allows multiple tests to be grouped together in to modules...
- Module Lifecycle Object ā Configure the lifecycle of tests in the module...
- Test Modes ā Defines 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 Tests ā The unit test function, responsible for performing one or more Test Assertions...
- Test Assertions ā Assertions 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 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...
- Test Events ā Events defined by Test API...
- Test Results ā After testing is finished, output results...
- Test API - Dev Notes ā Developer notes for this API...
- Test API - possible future direction ā Rough ideas for future development...
Ā