Testing Flex Custom Controls

Silk Test Classic supports testing Flex custom controls. By default, Silk Test Classic provides record and playback support for the individual sub-controls of the custom control.

For testing custom controls, the following options exist:
Basic support

With basic support, you use dynamic invoke to interact with the custom control during replay. Use this low-effort approach when you want to access properties and methods of the custom control in the test application that Silk Test Classic does not expose. The developer of the custom control can also add methods and properties to the custom control specifically for making the control easier to test. A Silk Test Classic user can then call those methods or properties using the dynamic invoke feature.

The advantages of basic support include:
  • Dynamic invoke requires no code changes in the test application.
  • Using dynamic invoke is sufficient for most testing needs.
The disadvantages of basic support include:
  • No specific class name is included in the locator. For example, Silk Test Classic records //FlexBox rather than //FlexSpinner.
  • Only limited recording support.
  • Silk Test Classic cannot replay events.

For more details about dynamic invoke, including an example, see Dynamically Invoking Apache Flex Methods.

Advanced support
With advanced support, you create specific automation support for the custom control. This additional automation support provides recording support and more powerful play-back support. The advantages of advanced support include:
  • High-level recording and playback support, including the recording and replaying of events.
  • Silk Test Classic treats the custom control exactly the same as any other built-in Flex control.
  • Seamless integration into Silk Test Classic API.
  • Silk Test Classic uses the specific class name in the locator. For example, Silk Test Classic records //FlexSpinner.
The disadvantages of advanced support include:
  • Implementation effort is required. The test application must be modified and the Open Agent must be extended.