Geltungsbereich(Scope) (Preview)

6.0+Preview

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 Webanwendungen, 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.

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 44.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.