REQUIRE

C++ Test Script Language

Syntax

REQUIRE <native expression>

Location

WRAP, STUB, PROC

Description

The REQUIRE statement describes a method pre-condition. It can be used in a WRAP, STUB or PROC block.

Note   The information below pertains to the use of REQUIRE within a WRAP block. For more information about using the REQUIRE and ENSURE statement within a STUB or PROC block, please refer to the STUB and PROC.

<native expression> is a C++ Boolean expression (or an expression that can be converted into a Boolean), which can use:

The following symbols cannot be used in the <native expression> parameter of the REQUIRE statement:

Evaluation

The <native expression> parameter of the REQUIRE statement is evaluated before any code of the method is executed (local variables are not pushed yet).

Warning: you can call methods in <native expression>, but you must ensure that these calls do not modify the object's state by writing to any field. You can ensure this by calling const methods only.

Example

C++ source code example:

class Stack {

       int count;

       Stack () : count(0) {}

       void push (void *);

       void *pop ();

};

 

OTC code example:

CLASS Stack {

       WRAP pop
       
REQUIRE (count > 0)

}