Domanda

E 'possibile utilizzare cxxunit o qualsiasi altro framework di test quote (al netto QtTestLib ) a prova Qt widget?

Se sì, allora ci sono altre due domande:

  1. Come?
  2. Dato che io sono in esecuzione test di unità utilizzando valgrind, posso presente relazione alcuni errori?
È stato utile?

Soluzione

Sì, dovrebbe essere possibile. Io non sono sicuro di cxxunit specifico, ma è teoricamente possibile.

  1. Per testare correttamente gli oggetti Qt, si avrà probabilmente bisogno di creare / distruggere un oggetto QApplication nelle funzioni di impostazione e teardown globali. A meno che non siano specificamente le prove di funzionalità QApplication, si dovrebbe creare una sola per l'intera esecuzione dell'applicazione di test. Questo vi permetterà di testare porzioni della logica del widget, ma non facilmente l'aspetto o UI interattività del widget. Inoltre, il controllo di taluni elementi può contare su avere ciclo di eventi in esecuzione dell'applicazione, che sarebbe più difficile.
  2. Valgrind può segnalare alcuni errori. Può anche segnalare errori con il codice di Qt, in particolare allocazioni statiche che vengono lasciati a teardown richiesta di recupero.

Altri suggerimenti

Se si desidera testare l'interfaccia utente, vi suggerisco di utilizzare uno strumento di test dell'interfaccia utente come Squish . Prove di unità trovo più adatto per testare la logica dietro i widget, non i widget stesso. Se davvero si vuole unità-test i widget Qt, non credo che ci sia una soluzione migliore rispetto QtTestLib.

Valgrind: C'è un valgrind plug-in per Squish . Non ho usato che uno io però. Altri test di unità possono naturalmente essere facilmente eseguito in valgrind, anche se non so di qualsiasi soluzione che automatizza completamente questo. Si dovrebbe fare in modo di veramente sopprimere tutti gli avvisi da uno esterno possiede codice in modo che qualche errore di esempio librerie X11 non innescare la prova di unità di sicuro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top