This macro will add a function to the list of functions, to which calls are allowed and always considered valid. Function calls to this function are always replaced with function calls to a specfified mock function.

ALLOW_MOCK(function, mock [, parameter])

A function used by the unit. The function can have any prototype.
The function that will be called instead of function. The mock must have same prototype as the function it mocks.
An optional value that can be retieved in the mock. Default is 0.

All function calls to function are considered valid, and they will be redirected to mock for the duration of the test. parameter is an optional parameter for the mock function. If not given, the default value is zero.

The mock will typical implement validation of the parameters, but it can also execute tests.

In order for the mock to validate the parameters, it is important that the mock has the same function prototype as the function it replaces. The return value of mock is passed back to the unit as the return value of function. The unit is unaware, that it is actually calling a mock function.

While mock is executing it is possible for the mock function to call function. Function calls made from an active mock do not apply to any of the rulessetup by by ALLOW or EXPECT. If function are not present in unit the default mock will be called. The default mock will return 0.

ALLOW_MOCK can be used together with EXPECT macros. If these are used with same function in the same test (or in a test executed from the test), the validation of function calls, setup with these macros, will take precedence until all of the expected function calls has been validated. ALLOW_MOCK is valid for the duration of the test. If the test calls other tests, the macro will remain in scope also for these tests.

ALLOW_MOCK on function will override any earlier allow macros on that function.



The latest headlines from

TestApe Release 1171 available, Aug 20th 2014

It has been a long time since last official release and the list of bugfixes, features and supported platforms accumulating in the beta has grown substantially. I am happy to annouce that a new release is ready.


TestApe beta version available, Jul 21th 2014

New beta version is now available for download.


TestApe Release 880 available, Dec 3rd 2011

New is this release are support for floating point validations and function mocking. Also, MinGW has been added to the list of supported platforms.


Forum change, Mar 27th 2011

TestApe forum is now hosted on Proboards. Support questions can be posted here or send directly on email. Due to ...


TestApe beta release available, Sep 27th 2011

TestApe can now be used with MinGW GCC on windows. Also supported in this beta are floating point types in validations or when mocking functions


IPad update for WebTTY, May 15th 2011

A small fix for webtty scripts, to allow the usage from Apple IPads. Tab on textarea to bring up IPad keyboard - you may have to scroll webpage beneath keyboard, in order to actually see what you're typing.

TestApe Release 791 available, Apr 2nd 2010

This release contains a new flexible mocking system with default mocks automatically generated for unresolved functions. Installation packages are available for GCC/Linux, GCC/CygWin as well Visual Studio 2009/Windows XP or Vista.