2015-05-13 10 views
5

Ich habe eine Testmethod in CodedUITest Klasse hinzufügen, das Httpclient verwendet, um Daten von einem lokalen Server zu holen,Wie Fähigkeiten zu Coded UI-Test (Windows Phone 8.1) Projekt (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; 
} 

aber es, immer wirft Ausnahme auf letzte Zeile wie:

{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)} 

Basierend auf Required Manifest Capabilities Es scheint, gibt es keine Möglichkeit für ein Projekt Coded UI App-Manifest zu spezifizieren.

Hat jemand eine Idee, wie man ID_CAP_NETWORKING-Fähigkeit spezifiziert?

Antwort

1

Es scheint, als ob Sie versuchen, die Antwort zu testen, die Sie vom Server erhalten (korrigieren Sie mich, wenn ich falsch liege). Coded UI Testing ist nicht für diese Verwendung vorgesehen.

Wenn es um die Prüfung kommt haben Sie (mehr aber in der Regel) zwei Methoden gehen davon:

  • Unit Testing

mit Unit Testing Sie kleine Portionen des Codes testen wollen (Klassen/Methoden) isoliert von der realen Implementierung Ihrer Anwendung. I.e. Überprüfen Sie, ob Ihre Get-Methode korrekte HTTP-Antwortcodes in verschiedenen Situationen zurückgibt.

  • UI Testing

Allgemeinen etwas, das man als Teil tun funktioneller/Abnahmeprüfung. Sie stellen sicher, dass sich die Anwendung während der realen Implementierung verhält. I.e. Überprüfen, ob eine Schaltfläche einen Wert in einem Textfeld korrekt festlegt.

Was Sie versuchen (wieder, korrigieren Sie mich, wenn ich falsch liege), kombiniert beide, um eine reale Implementierung zu machen und bestimmte Methoden Ihres Webservice zu testen. Das Coded UI-Framework erwartet, dass eine Anwendung im Test ausgeführt wird. Wenn Sie nur Get-Methoden verwenden, um zu überprüfen, ob Sie die richtigen Daten erhalten, oder im richtigen Format, sollten Sie Komponententests ausprobieren.

Sie können für die Eingabe mehr über unit testing here.

+0

Dank lesen. Eigentlich versuche ich, Testdaten von einer externen Quelle (in diesem Fall http: // localhost: 34562/GetTestResult) in das Coded UI Test-Projekt zu bekommen, dann kann ich diese Testdaten als Eingabe in das Textfeld verwenden Steuerung. (Die Funktion ist dem DataSouce-Attribut ziemlich ähnlich) –

+0

Dann schlage ich vor, dass Sie die Daten erhalten, bevor Sie den Test ausführen. Eine separate Methode oder lassen Sie Ihre eigenen ApplicationUnderTest die Daten erhalten. –