2

私は、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'

実際のプログラム (テスト ケースではない) から同じコードを呼び出すと、同じコードが問題なく動作します。どんな助けでも大歓迎です。

4

1 に答える 1

1

私のコメントを参照してください。これをあなたの質問への回答として含めることができます。

" Metro スタイルの単体テスト テンプレートを使用していますか? はいの場合、アプリ マニフェスト ファイルで Internet Client (私が思うに) を有効にする必要があります -> この動作を許可する機能はありますか?。また、外部呼び出しをテストしているため、これは単体テストではありません。より統合テストです。

あなたが持っているのとまったく同じコードを使用しましたが、まったく同じエラーが発生します。先ほど述べたように、Package.appxmanifest -> Capabilities -> Internet (Client) チェック ボックスをオンにするだけで、テストに合格するはずです。

于 2012-07-05T11:52:18.303 に答える