如何在C#编写的Coded UI Test(Windows Phone 8.1)项目中添加功能

4

我有一个在CodedUITest类中的TestMethod,它使用HttpClient从本地服务器获取数据。

[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;
}

然而,在最后一行总是会抛出异常,例如:

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

根据所需清单功能,似乎没有办法为Coded UI项目指定应用程序清单。

有人知道如何指定ID_CAP_NETWORKING功能吗?

1个回答

1
看起来你正在尝试对从服务器获取的响应进行UI测试(如果我说错了,请纠正我)。编码 UI 测试不适用于此用途。
在测试方面,您通常有两种方法(更多但通常只有两种):
单元测试
使用单元测试,您的目标是测试代码的小部分(类/方法),与应用程序的真实实现隔离。例如:检查您的 Get 方法在不同情况下返回正确的 HTTP 响应代码。
UI 测试
通常作为功能 / 验收测试的一部分。您确保应用程序在实际实现过程中表现正常。例如:检查按钮是否正确设置了文本框中的值。
您正在尝试做的事情(再次纠正我如果我错了)是将两者结合起来进行实际实现并测试 Web 服务的某些方法。编码 UI 框架期望在测试中运行应用程序,如果您只是使用 Get 方法检查是否以正确的格式返回了正确的数据,我建议您尝试单元测试。
您可以阅读更多关于 单元测试 的信息。

感谢您的输入。实际上,我正在尝试从外部源(在这种情况下,http://localhost:34562/GetTestResult)获取测试数据,以供Coded UI测试项目使用,然后我可以将这些测试数据用作文本字段控件的输入。(该功能与DataSouce属性非常相似) - Sol Lee
那我建议您在运行测试之前先获取数据。可以编写一个单独的方法,或让您自己的ApplicationUnderTest获取数据。 - Thomas Bouman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接