Geltungsbereich (Scope)
6.0+
Mit einem Geltungsbereich kann der Suchbereich für Komponenten eingegrenzt werden. Das ist nützlich, um eine Eindeutigkeit von Komponentenreferenzen herzustellen oder die Lesbarkeit eines Tests zu verbessern. Beispiel: Es gibt drei Panels mit Adressdaten mit identisch beschrifteten Textfeldern. Der Geltungsbereich kann nun auf eines der Panels gesetzt werden. Nun beziehen sich die angegebenen SmartIDs ausschließlich auf die Felder in diesem Panel.
Der Geltungsbereich kann unter gewissen Umständen auch zur Beschleunigung der Komponentenerkennung genutzt werden, insbesondere bei Fenstern oder Webseiten, die sehr viele Komponenten enthalten. Ein Beispiel hierzu sind Web-Anwendungen, die von Anfang an alle GUI-Elemente mit dem Status "unsichtbar" laden, und nur die jeweils relevanten sichtbar schalten. Hierbei kann es nützlich sein, über den Geltungsbereich die Komponentenerkennung zumindest auf das sichtbare Fenster einzugrenzen.
Der Geltungsbereich wird in der Bemerkung eines Knotens, über die SmartID
oder auch die QF-Test ID der aufgenommenen Komponente mit vorangestelltem
@scope
gesetzt, zum Beispiel @scope #myDialog
.
Wenn der Scope für mehrere Event- oder Check-Knoten gelten soll,
wird der Geltungsbereich in der Bemerkung eines Knotens (zum Beispiel
Sequenz, Testschritt oder Testfall) gesetzt,
der diese Knoten direkt oder indirekt über Prozeduraufrufe enthält.
Der aktive Geltungsbereich kann vereinfacht über eine
SmartID referenziert werden, die nur aus der Raute #
besteht.
Wenn eine Komponente nicht innerhalb des Geltungsbereichs liegt, kommt
es zu einer ComponentNotFoundException
. Geltungsbereiche können
bei Bedarf umgangen werden, indem das Doctag @noscope
in
der Bemerkung des entsprechenden Event- oder Checkknotens eingefügt wird oder
noscope:
an den Anfang der SmartID gesetzt wird. Zum Beispiel
ist es über die SmartID #noscope:Speichern
möglich, den Button
"Speichern" anzuklicken, der eigentlich außerhalb des Geltungsbereich liegt,
der für die Sequenz gesetzt ist, in der sich das Klick-Event befindet
(siehe Abschnitt 48.3).
Geltungsbereiche können geschachtelt werden, wobei der innere
Geltungsbereich im äußeren liegen muss und diesen weiter einschränkt.
Auch hier kann mit dem Doctag @noscope
eine Ausnahme erreicht werden.
Hierzu werden in der Bemerkung des Knotens, dessen Komponenten
in einem Geltungsbereich außerhalb des aktuell gültigen liegen,
die Doctags @noscope
und @scope NEWSCOPE
angegeben
(NEWSCOPE ist ein Platzhalter für den neuen Geltungsbereich).
Die Reihenfolge der Doctags ist beliebig.
Der Geltungsbereich bezieht sich immer nur auf den jeweiligen Knoten
und die darin ausgeführten Knoten. Die Komponenten einer im
Geltungsbereich gerufenen Prozedur müssen somit im Geltungsbereich
liegen oder mit #noscope:...
oder Doctag
@noscope
) gekennzeichnet werden.
Geltungsbereiche können über SmartIDs, aber auch über die QF-Test ID von aufgenommenen Komponenten festgelegt werden. Trotzdem werden Sie nur bei der Referenzierung einer Komponente via SmartID berücksichtigt. Beim Referenzieren einer aufgenommenen Komponente wird der aktuelle Geltungsbereich immer ignoriert.