2015-05-13 20 views
5

Ho un TestMethod in CodedUITest classe che utilizza HttpClient per il recupero dei dati da un server locale,Come aggiungere capacità di Coded UI test (Windows Phone 8.1) progetto (in C#)

[TestMethod] 
public void CodedUITestMethod() 
{ 
string ServiceURI = "http://localhost:34562/GetTestResult"; 
HttpClient httpClient = new HttpClient(); 
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, ServiceURI); 
HttpResponseMessage response = httpClient.SendAsync(request).Result; 
} 

Tuttavia, getta sempre un'eccezione alla ultima riga, come:

{System.UnauthorizedAccessException: Use of networking APIs requires the ID_CAP_NETWORKING capability to be defined in the application manifest. 
    at MS.Internal.Modern.ClientHttpWebRequestCreator.Create(Uri uri) 
    at System.Net.WebRequest.Create(Uri requestUri, Boolean schemeOnly) 
    at System.Net.WebRequest.Create(Uri requestUri) 
    at System.Net.Http.HttpClientHandler.CreateAndPrepareWebRequest(HttpRequestMessage request) 
    at System.Net.Http.HttpClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)} 

sulla base Required Manifest Capabilities sembra che ci sia alcun modo per un progetto Coded UI per specificare file manifest.

Qualcuno ha qualche idea su come specificare la capacità di ID_CAP_NETWORKING?

risposta

1

Sembra che tu stia cercando di interfaccia utente la risposta ricevuta dal server (correggimi se ho torto). I test codificati dell'interfaccia utente non sono destinati a questo utilizzo.

Quando si tratta di test che avete (più, ma di solito) due metodi di andare su di esso:

  • Unit Testing

Con Unit Testing si mira a testare piccole porzioni di codice (classi/metodi) isolati dall'implementazione del mondo reale dell'applicazione. Cioè Verifica se il tuo metodo Get restituisce i codici di risposta HTTP corretti in diverse situazioni.

  • UI Test

Generalmente qualcosa che si fa come parte del test di funzionamento/accettazione. Assicurati che l'applicazione si comporti come dovrebbe durante l'implementazione del mondo reale. Cioè Verifica se un pulsante imposta correttamente un valore in una casella di testo.

Quello che stai cercando di fare (di nuovo, correggimi se sbaglio) sta combinando entrambi per fare un'implementazione nel mondo reale e testare alcuni metodi del tuo webservice. Il framework di codifica dell'interfaccia utente prevede l'esecuzione di un'applicazione sottoposta a test, se si utilizzano solo i metodi Get per verificare se si ottengono i dati corretti o nel formato corretto suggerisco di provare i test delle unità.

Si può leggere di più su unit testing here.

+0

Grazie per l'input. In realtà, sto provando a ottenere i dati di test da una fonte esterna (in questo caso, http: // localhost: 34562/GetTestResult) da inserire nel progetto Test codificato dell'interfaccia utente, quindi posso utilizzare questi dati di test come input nel campo di testo controllo. (La funzione è molto simile all'attributo DataSouce) –

+0

Quindi suggerisco di ottenere i dati prima di eseguire il test. Un metodo separato o lasciare che il proprio ApplicationUnderTest ottenga i dati. –