Tra le tante novità introdotte da Visual Studio 2013, c'è troviamo la possibilità di eseguire test dell'interfaccia automatizzati (Coded UI test), anche per le applicazioni Windows Store.
Per il momento il supporto è limitato solo alle applicazioni basate su XAML (eXtensible Application Markup Language), perciò le app Windows Store che utilizzano WinJS non sono supportate per i test codificati dell'interfaccia utente. Tuttavia è interessante capire almeno il funzionamenteo di questa caratteristica che sarà possibile approfondire ulteriormente nella guida dedicata alla applicazioni sviluppate con tecnologia C#/XAML.
Breve introduzione ai CodedUI Test
I Coded UI test sono una particolare tipologia di test che consente di testare e, quindi, validare il comportamento di una interfaccia grafica in maniera automatica senza la presenza di un operatore umano.
Di fatto un Coded UI test è a tutti gli effetti un test (sfrutta, cioè un framework di test supportato da Visual Studio) con la capacità di eseguire operazioni sull'interfaccia grafica (ad esempio la pressione di un tasto o la verifica della presenza di un testo all'interno di un textbox).
Grazie all'assenza di operatori che effettuano manualmente i test, si può aggiungere un numero maggiore di test da affiancare alle tecniche di testing automatico già esistenti (ad esempio gli Unit Test).
Progetto CodedUI Test e la UIMap
I coded UI test per le Windows Store App hanno un loro progetto specifico all'interno di Visual Studio (C#):
Durante la creazione del progetto di test, Visual Studio richiede se creare la UI Map o se il test deve essere scritto manualmente.
La UI Map contiene la definizione degli oggetti grafici che andremo a "sollecitare" nei nostri test e può essere modificata in seguito utilizzando lo strumento "Code UI Test Tool" (CUIT) presente nel menu test di Visual Studio.
Selezionando l'opzione di editing della UI Map viene aperto il CUIT come mostrato nella figura seguente:
Il tool consente di creare una mappa dei controlli grafici presenti nell'applicazione da testare in modo da poterli referenziare nel codice del test stesso. Per poter aggiungere un controllo grafico nella mappa dei controlli che utilizzeremo per il test, è sufficiente cliccare sullo strumento di selezione presente nella piccola toolbar del CUIT e trascinare il cursore (mantenendo premuto il tasto sinistro) al di sopra del controllo desiderato (evidenziato da un bordo colorato).
Selezionando un controllo della UI si apre una finestra che mostra il nome del controllo e le sue proprietà.
Selezioniamo, dunque, i singoli controlli che intendiamo utilizzare nei nostri test, confermiamo per ognuno l'aggiunta alla mappa con l'apposito comando e, infine, salviamo la mappa stessa con il comando di "generazione del codice".
Nei progetti CodedUI test per altre tecnologie (ad esempio WPF), il CUIT può essere utilizzato per registrare il test stesso. Nelle Windows Store App non è possibile, al momento, registrare i test con il CUIT.
Nel momento in cui eseguiamo il comando di generazione della UI Map, Visual Studio crea un file UIMap.uitest
che contiene la mappa stessa e un file di codice (UIMap.Designer.cs) che contiene la classe UIMap che espone le finestre e i controlli per poterli utilizzare nel codice.
La seguente figura mostra il diagramma delle classi generato dallo strumento:
Come possiamo vedere la classe UIMap espone un'istanza della finestra che stiamo testando (UIW8CidedUITestWindow
nell'esempio) la quale, a sua volta, espone i vari controlli.
Per imparare a scrivere test e a gestire gli eventi generati dall'interazione con l'utente, possiamo continuare la lettura sulla guida orientata alla tecnologia C#/XAML.