2009-08-04 6 views
0

Je suis en train de tester une application d'interface graphique Swing à l'aide du cadre de test UISpec4J. Je suis en train de tester le code de validation sur un JTextField, mais le framework ne prend pas en charge les événements de changement de focus, car il exécute l'application de manière décomplexée.Distribution manuelle d'un objet DocumentEvent pour tester le code de validation de l'élément d'interface utilisateur

Le champ de texte est associé à un DocumentEvent qui active le code de validation. J'essaie de comprendre comment distribuer l'événement de document manuellement pour activer le code de validation. Essayer d'envoyer manuellement les événements de focus ou de souris n'a pas fonctionné pour moi.

Merci pour toute aide!

Répondre

0

Je ne suis pas sûr de comprendre le problème. Ne pouvez-vous pas simplement utiliser

textField.getDocument().insertString(..) 

pour générer un DocumentEvent?

En outre, je suggère que la validation ne devrait pas être faite dans le DocumentListener car il est trop tard pour cela puisque le document a déjà été mis à jour. Pour valider les données lors de leur saisie, vous devez utiliser un DocumentFilter.

+0

Essayé cela, et cela ne fonctionne pas. Le texte est inséré dans le champ de texte, mais DocumentEvent n'est pas distribué. Je pense que c'est un problème du framework de test UISpec4J, c'est pourquoi j'essaie de comprendre comment distribuer manuellement l'événement. Je suis d'accord que DocumentListener n'est pas le meilleur endroit pour la validation, mais le code a déjà été écrit, et en tant que testeur, je fais face aux retombées. :-) – Bassam