Recherche d'objets de test

Functional Tester offre un moyen de localiser un ou plusieurs objets de test (TestObjects) répondant à des critères spécifiques. La recherche porte sur des paires nom-valeur qui représentent les propriétés du ou des objets de test que vous recherchez. Elle peut être soit globale, soit limitée aux descendants (objets enfants) d'un objet de test parent.

Pour représenter une vue globale du logiciel en cours de test, Functional Tester prévoit un objet de test racine, le RootTestObject. Pour effectuer une recherche globale, vous devez invoquer la méthode find sur le RootTestObject. Si vous invoquez cette méthode sur un objet de test (TestObject) particulier, la recherche portera uniquement sur les descendants de cet objet.

Le premier argument de la méthode find est un sous-élément destiné à spécifier les propriétés de recherche. Le second argument, optionnel, est un fanion (flag) indiquant si la recherche doit porter uniquement sur les descendants (objets enfants) inclus dans la mappe d'objets de test. Les valeurs admises pour le sous-élément de spécification des propriétés de recherche sont les suivantes :

Les objets sont confrontés aux critères du premier élément de la liste afin d'obtenir une liste de candidats, puis les descendants de ces candidats sont confrontés aux critères de l'élément de liste suivant, et ainsi de suite.

Des propriétés spéciales sont prévues pour la méthode RootTestObject.find :

Exemples :

     TestObject[] foundTOs ;
     RootTestObject root = RootTestObject.getRootTestObject() ;
     // Trouver, dans le domaine Windows, toutes les fenêtres de niveau supérieur
     // qui ont pour titre (caption) "Mon document"
     CaptionText caption = new CaptionText("Mon document") ;
     foundTOs = root.find(atChild(".domain", "Win", ".caption",
       caption)) ;
     
     // Trouver toutes les boîtes de dialogue, puis renvoyer
     // leurs boutons "OK" enfants.
      RegularExpression dialogRE = new
        RegularExpression("*dialog", false) ;
      RegularExpression buttonRE = new
        RegularExpression("*button", false) ;
      foundTOs = root.find(atList(atDescendant(".class",
                          dialogRE),
                          atChild(".class", buttonRE, ".value",
                           "OK"))) ;
     
     // Démarrer Notepad (Bloc-notes), activer dynamiquement ce processus, trouver
     // sa fenêtre de niveau de supérieur concordant avec l'ID de processus (pid)
     // et obtenir sa fenêtre de texte descendante.
      ProcessTestObject p1 = StartApp("Notepad") ;
      Integer pid = new Integer((int)p1.getProcessId()) ;
      foundTOs = root.find(atList(atProperty(".processId",
        pid, atDescendant(".class", ".text"))) ;


     // Activer une application Windows ayant le descripteur (handle) de fenêtre       // fourni et retourner un TestObject représentant cette fenêtre      Long hWnd = getAppsHwnd();      foundTOs = root.find(atChild(".hwnd", hWnd, ".domain", "Win"));
      // Activer une application .NET ayant le descripteur (handle) de fenêtre      // fourni et retourner un TestObject représentant cette fenêtre.      Long handle = getAppsHwnd();      foundTOs = root.find(atChild("Handle", handle, ".domain", "Net"));

Conditions d'utilisation | Appréciations en retour
(C) Copyright IBM Corporation 2002, 2004. All Rights Reserved.