How TestComplete Records and Simulates Actions on C++Builder Controls
TestComplete provides support for a number of the most popular controls of C++Builder applications. It automatically recognizes individual controls by their classes (the value of a control’s
ClassName property) and lets you interact with them both at design time and while recording or replaying a test. Based on the object type, TestComplete provides a set of object-specific methods and properties for automating various interactions with the object. For example:
Clicking a button is recorded and played back using the
Item selection in combo box, list box and list view controls -- using the
Clicks on grid cells -- using the
And so on.
When you record user actions with supported C++Builder controls, TestComplete records these special methods and properties applied to the corresponding objects, rather than just coordinate clicks. You can see some of these methods, specifically,
ClickButton, in the sample test below.
Some controls, such as Label, do not have specific high-level operations associated with them because users do not generally interact with these objects. However, these objects are also available in the application’s object hierarchy, and you can use them in your tests if necessary. For example, you can create checkpoints for these objects.
List of Supported C++Builder Controls
For a complete list of supported C++Builder controls and properties and methods that TestComplete provides for automating these controls, see the following topics:
Note that TestComplete provides support for the listed controls as well as for their descendants. However, to make this possible, you need to specify the class name of your inherited control in the corresponding group of the project’s Object Mapping options.
Support for Tabular Controls
TestComplete enables creating of Table Checkpoints for some C++Builder controls that represent information in a tabular form (for the full list of such controls see About Tables Collection). With table checkpoints you can retrieve and compare data of C++Builder tabular controls.
Using Native Properties and Methods of C++Builder Controls
In addition to control-specific methods and properties for automating operations on C++Builder controls, TestComplete provides access to native properties and methods of these objects. These are the same properties and methods that are used in the application’s source code. You can use these native properties and methods to extend your tests and perform custom operations that are not available with standard properties and methods provided by TestComplete. For more information, see Accessing Native Properties and Methods of C++Builder Objects.
|TestComplete can expose only published methods and properties of VCL controls in 64-bit C++Builder applications. Public, protected and private members are not currently available.|
Automating Unsupported C++Builder Controls
You can test unsupported C++Builder application controls using properties and methods provided by TestComplete for on-screen objects. Interactions with these controls are typically recorded as generic coordinate clicks.
You can also automate these controls by calling their native properties and methods from your test or using various helper techniques described in the Interacting With Non-Compatible Application Objects topic.
TestComplete does not recognize Developer Express VCL controls in 64-bit C++Builder applications.
To learn how to perform elementary testing operations with applications’ controls, see Working With Standard Windows Controls. This section includes a description of the most common control-specific operations you may need to perform with controls under test, for example, checking a button’s state, determining the number of combo box items, getting tab pages’ images, expanding and collapsing tree view items and so on. For detailed information on approaches you can use to test your applications’ controls, see the Working with Application Objects and Controls section.
In addition to control-specific operations, there are some common tasks you may need to perform with any application’s object (for example, checking an object's state, searching for an object or checking whether an object exists). For the full list of basic operations and instructions on how to perform them, see Common tasks.