Come testare il Search contract di Windows 8

Print Content | More

Una delle caratteristiche più interessanti per le applicazioni di terze parti di Windows 8 è quella dei contract: si tratta, letteralmente, di contratti tra l’applicazione e il sistema operativo, che permetteno di integrarla con gli strumenti offerti da Windows 8.

Uno dei contract più utilizzati è il Search contract, che permette di includere la nostra applicazione tra i possibili risultati di una ricerca lanciata tramite il sistema operativo (tramite il pulsante Search presente nella barra laterale o semplicemente iniziando a digitare un testo all’interno del nuovo menu Start).

Implementare il Search contract è piuttosto semplice: si tratta di una delle voci disponibili nel menu Add New Item di Visual Studio 11. In automatico, sarà aggiunta:

  • La dichiarazione all’interno del file di manifest.
  • Una nuova pagina all’interno dell’applicazione, che mostrerà i risultati della ricerca.
  • L’aggiunta, all’interno del file App.xaml.cs, dell’evento OnSearchActivated, che è il punto di ingresso dell’applicazione nel caso in cui venga attivata da una ricerca.

Quest’ultimo evento restituisce un parametro di tipo SearchActivatedEventArgs, che contiene la proprietà QueryText con il testo cercato dall’utente. Dopodichè il controllo viene passato alla pagina di ricerca e sta a noi includere la logica necessaria per recuperare i risultati, a seconda della sorgente dati che sta alla base della nostra applicazione.

Durante la fase di testing potrebbe sorgere però il dubbio su come fare debug di uno scenario che, all’apparenza, non sembra testabile: l’attivazione dell’applicazione in seguito ad una ricerca. Fintanto che la ricerca viene lanciata mentre è in esecuzione non ci sono problemi: è sufficiente avviare il debugger e, una volta che l’applicazione è aperta, effettuare la ricerca.

L’utente però potrebbe anche lanciare la ricerca senza aver avviato in precedenza l’applicazione: in questo caso abbiamo la necessità di testare lo scenario in cui l’applicazione, in partenza, è chiusa, perciò il debugger non è attivo. Ad aggirare questo inconveniente ci viene in aiuto Visual Studio 11, grazie ad un’opzione che mi ha fatto scoprire il buon Corrado: se facciamo tasto destro sul progetto, scegliamo Properties, dopodichè ci spostiamo nella sezione Debug troveremo la voce Do not launch, but debug my code when it starts.

image

Quando questa opzione è attiva, premendo F5 sarà avviato solamente il debugger: nel momento in cui l’applicazione verrà eseguita (sia in maniera tradizionale tramite un tap sulla tile, sia in seguito ad una ricerca, sia in seguito all’utilizzo di uno share contract per la condivisione, ecc.) il debugger si collegherà, dandoci accesso a tutto quello a cui siamo abituati (breakpoint, watch, ecc.). A questo punto vi basta perciò, senza aprire l’applicazione, lanciare la ricerca per testare il vostro scenario.

Questo meccanismo funziona per qualsiasi test che richieda che, di base, l’applicazione non sia in esecuzione: un altro esempio potrebbe essere l’avvio dell’applicazione da una tile secondaria.


Windows 8 , Microsoft , WinRT

0 comments

Related Post


(will not be published)
(es: http://www.mysite.com)