2017-10-19 52 views
0

J'ai un programme Matlab plutôt important basé sur l'interface graphique. Je cherche à créer des tests automatisés pour cela, car la manière actuelle de vérifier les bogues avant une version est simplement d'utiliser toutes ses fonctionnalités comme le ferait un utilisateur. Je préfèrerais ne pas utiliser un programme de test de GUI qui enregistre simplement les clics et quoi que ce soit, donc je pensais ajouter un code de test qui appelait les rappels de bouton directement. Le problème que j'ai rencontré avec ceci est que nous avons beaucoup de popups warndlg et msgbox, et je voudrais que mon code de testeur puisse les voir.Méthode de traitement par programme Fenêtre de dialogue Matlab

Le code Matlab peut-il indiquer si une fonction qu'il a appelée a créé warndlg ou msgbox? Si oui, y a-t-il un moyen de cliquer sur 'ok' sur ces popups?

Dans la même veine, est-il possible de gérer les popups qui bloquent l'exécution de code (en utilisant uiwait ou inputdlg)?

S'il importe que je n'ai pas utilisé GUIDE, et tous les éléments de l'interface graphique sont créés par programme

Répondre

1

Deux façons. Le premier est plus élégant

  • Laissez les fonctions retourner une variable supplémentaire et retourner l'état de la fonction. Par exemple, 1: succès, 2: succès avec avertissement, 3: erreur ...

  • Créez des variables globales et modifiez-les si un warndlg ou msbgbox apparaît. La fenêtre principale vérifie alors si le statut de la variable globale.

+0

Merci à @MosGeo pour l'idée. Je n'ai pas besoin d'aller modifier tout mon code pour ajouter des valeurs de retour supplémentaires. Toute idée de savoir si des fenêtres pop-up ont été créées sans ajouter de valeurs de retour supplémentaires? – noob42

+0

Voici une autre manière: n'utilisez pas la valeur par défaut 'warndlg' ou' msbgbox'. Créez vos propres fonctions qui déclencheraient ces deux fonctions. Dans le processus, ils modifient une variable globale comme je l'ai mentionné auparavant. De cette façon, vous n'avez pas à modifier votre, il vous suffit d'appeler les nouvelles fonctions au lieu de l'original. – MosGeo