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