我在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)}
基于Required Manifest Capabilities似乎Coded UI项目无法指定应用清单。
有没有人知道如何指定ID_CAP_NETWORKING功能?
答案 0 :(得分:1)
看起来你正试图用UI测试你从服务器得到的响应(如果我错了,请纠正我)。编码的UI测试不适用于此用途。
在测试方面,你有(更多但通常)两种方法:
使用单元测试,您的目标是测试与应用程序的真实实现隔离的代码的小部分(类/方法)。即检查Get方法是否在不同情况下返回正确的HTTP响应代码。
一般来说,您作为功能/验收测试的一部分。您可以确保应用程序在实际实施过程中的行为正常。即检查按钮是否在文本框中正确设置了值。
你正在尝试做什么(再次,如果我错了,请纠正我)将两者结合起来进行实际的实施并测试你的web服务的某些方法。 Coded UI框架要求运行测试的应用程序,如果您只使用Get方法检查是否收回了正确的数据,或者采用正确的格式,我建议您尝试进行单元测试。
您可以阅读有关unit testing here.
的更多信息