单元测试异步方法:无法解析远程主机名

时间:2012-06-13 20:42:14

标签: c# .net unit-testing .net-4.5 c#-5.0

我正在尝试测试一些涉及HttpClient的异步方法,使用vs 2012 Express for win 8及其测试框架。无论我如何尝试,我总是得到同样的例外。

例如此测试代码:

[TestMethod]
public async Task Connect()
{
    HttpClient client = new HttpClient();
    string reply = await client.GetStringAsync("http://google.com");
    Assert.AreNotEqual(0, reply.Length);
}

考虑到这一点,这应该可行:http://www.richard-banks.org/2012/03/how-to-unit-test-async-methods-with.html

抛出

System.Net.WebException: The remote name could not be resolved: 'google.com'

从实际程序(不是测试用例)调用时,相同的代码工作正常。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

请参阅我的评论,我可以将其作为您问题的答案。

您使用的是Metro样式单元测试模板吗?如果是,您需要启用应用程序清单文件中的Internet客户端(我认为) - >能够允许此行为的功能吗?还有,因为您是测试一个外部调用,这不是一个单元测试。它更像是一个集成测试。

我使用了完全相同的代码,但我得到完全相同的错误。正如我所说,如果你只是勾选Package.appxmanifest - >能力 - >互联网(客户端)复选框,你测试应该通过。