Sample Excel Extension: TechnologyManager Class
Diese Klasse erweitert die UITechnologyManager-Klasse und stellt Kerndienste für die Microsoft Excel-Erweiterung bereit.Obwohl die Basisklasse über viele Methoden verfügt, wird in diesem Beispiel nur eine Teilmenge der Methoden verwendet.
Einige Methoden geben nur einen Eigenschaftswert zurück.Viele der Methoden ermöglichen es dem Entwickler, in das Modul für Tests der codierten UI integrierte Standardalgorithmen zu überschreiben.Diese Methoden lösen eine NotSupportedException aus oder geben null zurück, wodurch das Framework angewiesen wird, den Standardalgorithmus zu verwenden.
Abhängig von der Komplexität der zugrunde liegenden Technologie konnte die Entwicklung des Codes des Technologie-Managers einige Wochen, aber auch Monate in Anspruch nehmen.Excel bietet eine Möglichkeit, einen potenziell sehr umfangreichen Technologie-Manager zu erstellen.Dieses Beispiel wurde bewusst auf Excel-Arbeitsblatter und -Zellen und die Verwendung einer eingeschränkten Formatierung begrenzt.
Nach Möglichkeit wird im Code des Technologie-Managers der von der Communicator-Klasse geöffnete .NET-Remotingkanal verwendet, um Informationen aus dem im Excel-Prozess ausgeführten Add-In zu extrahieren.
COM-Sichtbarkeit
Diese Klasse und alle Elementklassen, die die UITechnologyElement-Klasse erweitern, verfügen über das ComVisibleAttribute mit dem Wert true. Dadurch wird sichergestellt, dass die Klassen für COM sichtbar sind.
TechnologyName-Eigenschaft
Diese Überschreibung der UITechnologyManager.TechnologyName-Eigenschaft muss einen eindeutigen und aussagekräftigen Namen bereitstellen, der die zugrunde liegende Technologie für jede andere Komponente der Erweiterung identifiziert.Für diese Erweiterung lautet der Wert "Excel".
GetControlSupportLevel-Methode
Diese Überschreibung der UITechnologyManager.GetControlSupportLevel-Methode gibt eine Zahl zurück, die die Unterstützungsebene angibt, die der Technologie-Manager für das durch das bereitgestellte Handle dargestellte Steuerelement bieten kann.Je höher der zurückgegebene Wert ist, desto umfassender ist die Unterstützung des Technologie-Managers für das Steuerelement.In diesem Fall überprüft die Methode das Fenster mit dem Steuerelement und gibt den höchsten Wert zurück, wenn es sich um ein Excel-Arbeitsblatt handelt. Andernfalls wird 0 (Null) zurückgegeben, was bedeutet, dass keine Unterstützung verfügbar ist.
Methoden zum Abrufen eines Elements
Es sind mehrere wichtige Methoden verfügbar, die vom Framework für den Test der codierten UI verwendet werden, um ein spezifisches Element der Technologie oder ein Element einer anderen Technologie abzurufen, indem ein Handle (ein Punkt auf dem Bildschirm) bereitgestellt wird.Der Code für diese Methoden ist ohne Erläuterung verständlich.Folgende Basismethoden stehen zur Verfügung:
ParseQueryId-Methode
Beim Erstellen eines Tests der codierten UI kann der Benutzer Eigenschaftswerte für einige oder alle Steuerelemente im Test angeben.Diese Eigenschaftswerte werden vom Testframework verwendet, um als Sucheigenschaften bezeichnete Name-Wert-Paare zu erstellen, mit deren Hilfe während des Tests nach bestimmten UI-Steuerelementen gesucht wird.Zusammen stellen alle Sucheigenschaften den Wert der UITechnologyElement.QueryId-Eigenschaft aller Elemente in der Technologie dar, die jedes Steuerelement umfasst.Da ein Steuerelement während eines Tests möglicherweise mehrmals gesucht werden muss, bietet diese Methode dem Technologie-Manager die Möglichkeit, die Analyse der Sucheigenschaften für das jeweilige Steuerelement zu optimieren.Diese Methode gibt auch ein Cookie zurück, das vom Framework für nachfolgende Suchen nach diesem Steuerelement verwendet werden kann.Bei dieser Implementierung der Methode werden die Sucheigenschaften mithilfe der AndCondition.Match-Methode analysiert.
MatchElement-Methode
Um eine Steuerelementsuche mit dem Technologie-Manager auszuführen, können Sie die UITechnologyManager.Search-Methode implementieren, um entweder ein Array möglicher Übereinstimmungen zurückzugeben oder die NotSupportedException auszulösen, wodurch das Framework angewiesen wird, seinen eigenen Suchalgorithmus zu verwenden.In beiden Fällen müssen Sie die MatchElement-Methode implementieren, wobei wieder die AndCondition.Match-Methode verwendet wird.
Navigationsmethoden
Diese Methoden rufen das übergeordnete Element, untergeordnete Elemente oder gleichgeordnete Elemente des angegebenen Elements aus der Benutzeroberflächenhierarchie ab.Der Code ist einfach und mit verständlichen Kommentaren versehen.
Interne GetExcelElement-Methode
Diese interne Methode akzeptiert ein Fensterhandle und Informationen zu einem Excel-Element und gibt das angeforderte Excel-Element zurück.
Siehe auch
Referenz
Konzepte
Extending Coded UI Tests and Action Recordings to Support Microsoft Excel