Standard Qt classes¶
Squish test scripts can access methods and members of standard Qt classes.
Custom Qt classes¶
For custom Qt classes, their methods are accessible in test scripts if they have been declared as Qt public slots or declared public and marked with Q_INVOKABLE.
In addition, public properties that have been declared as QObject properties via Q_PROPERTY, are available for both verifications and search by name.
Using properties for object name generation¶
Properties declared via Q_PROPERTY can be configured and used by the Squish name generator.
Dynamic properties set via
QObject.setProperty() can be queried via QObject.property() but are unfortunately not available as properties and automatic name generation.
(Also see Object Name Generation .)
In addition, the Q_ENUMS macro can be used to declare custom enum types to the (Qt) "moc" tool, which should make them accessible from Squish.
Properties returning QVariant¶
Some Properties in Qt Quick return their value wrapped in QVariants. This is for example most common in the case of the model, for example for listviews. The QVariant itself can be converted to the base class as shown in the example below
The realmodel variable contains the original value if the conversion was successful.
Properties returning QVariantMap¶
Assuming the object
myObject has a property of type
QVariantMap accessing its contents works almost the same way as in Qt. It is only necessary to manually convert the returned QVariant objects to their actual value types. That means calling
QVariant::toMap() for example. This is done through Squish's
The following code example retrieves a
QVariantMap property from
myObject and prints all the keys of the map. It works for
QVariantMaps where the values are of type
QVariant<QString>. For different value types, the conversion of
valueVariant needs to be adjusted.
Please note that template based return types are not supported and the respective property or slot will not be listed in the
Methods views in the Squish IDE.
A possible workaround can be to return an object based on a non template based class.