Pour des informations sur les restrictions s'appliquant aux noms des points de vérification et aux formats de données utilisables avec les méthodes vpManual et vpDynamic, vous pouvez consulter la description de l'interface IFtVerificationPoint, dans le guide de référence des API de Functional Tester (en anglais).
Ce type de point est utile lorsque vous créez vous-même la donnée du point de vérification et que vous souhaitez la comparer. Par exemple, la donnée peut être le résultat d'un calcul ou provenir d'une source externe telle qu'une base de données.
Les objets point de vérification manuel sont construits à l'aide de la méthode vpManual. Lorsque vous appelez cette méthode, vous fournissez la donnée avant l'exécution de performTest. (La méthode performTest sauvegarde la donnée fournie, la compare à la version de référence lorsqu'il en existe une et consigne le résultat dans le journal.) La méthode vpManual a deux signatures :
IFtVerificationPoint vpManual (java.lang.String vpName, java.lang.Object actual) IFtVerificationPoint vpManual (java.lang.String vpName, java.lang.Object expected, java.lang.Object actual)
La première forme de vpManual reçoit en paramètres le nom du point de vérification (vpName) et la donnée réelle, laquelle est soit comparée à une version de référence, soit utilisée pour créer une version de référence s'il n'en existe pas. Notez que cette valeur peut être null. Le paramètre vpName doit être unique au sein du script. Par exemple :
vpManual ("manual1", "The rain in Spain").performTest();
Dans la seconde forme de la méthode, un paramètre d'entrée supplémentaire est prévu pour les données attendues à comparer aux données réelles. L'une ou l'autre de ces données peuvent être des valeurs "null". Par exemple :
vpManual ("manual1", "The rain in Spain", "The Rain in Spain").performTest();
Dans cet exemple, les données ne concordent pas. La méthode performTest consignerait dans le journal un message d'échec au point de vérification.
Les points de vérification dynamiques sont surtout utiles lorsque l'objet de test (TestObject) n'est pas mappé (ne figure pas dans la mappe d'objets de test) et n'est pas un élément que Functional Tester testerait en temps normal. Il peut s'agir, par exemple, d'un objet ne faisant pas partie de l'application testée.
Les points de vérification dynamiques sont construits à l'aide de la méthode vpDynamic. Un point de vérification dynamique déclenche l'affichage de l'interface utilisateur appropriée lors de la première lecture du script. L'utilisateur est ainsi en mesure d'insérer lui-même la donnée de référence par rapport à laquelle l'objet spécifié dans le script sera testé lors des lectures suivantes. De cette manière, il évite d'avoir à exécuter le test manuellement pour amener l'objet à l'état approprié avant d'enregistrer le point de vérification. La méthode vpDynamic a deux signatures :
IFtVerificationPoint vpDynamic (java.lang.String vpName) IFtVerificationPoint vpDynamic (java.lang.String vpName, TestObject objectUnderTest)
La première forme de la méthode vpDynamic requiert un nom de point de vérification unique au sein du script. L'Assistant Points de vérification et actions est lancé à la première lecture du script. L'utilisateur spécifie l'objet à tester (TestObject) et la version de référence par rapport à laquelle sera testé l'objet lors des lectures suivantes du script. Le script doit être exécuté en mode interactif. Par exemple :
vpDynamic("dynamic1").performTest();
L'autre forme de la méthode vpDynamic requiert la spécification de l'objet de test (TestObject). Par exemple :
vpDynamic("dynamic1", AnAWTButtonButton()).performTest();
A la première lecture du script, une interface utilisateur modifiée (sans hiérarchie TestObject puisque l'objet à tester est déjà spécifié dans la méthode) s'affiche pour permettre à l'utilisateur de spécifier les valeurs de référence (ou ligne de base). Le TestObject spécifié ne doit pas nécessairement figurer dans la mappe d'objets de test, mais il doit toujours s'agir du même objet. Faute de quoi, les résultats des tests n'ont aucun sens.
Les utilisateurs de ces méthodes commettent souvent la même erreur en oubliant de les faire suivre d'un appel à la méthode performTest. D'un point de vue syntaxique, rien n'interdit cette omission et la compilation se déroule donc sans avertissement, mais aucune action intéressante n'a lieu à l'exécution du script. Par exemple :
vpDynamic("test1", AnAWTButtonButton()); //ERROR. Rien ne se produit.