2017-02-03 10 views
1

Visual Studio/C#のユニットテストと非同期操作が初めてです。これに関する助けを感謝します。csharpのユニットテスト非同期タスク

私のメインクラス

class Foo 
{ 
    public async Task<string> GetWebAsync() 
    { 
     using (var client = new HttpClient()) 
     { 
      var response = await client.GetAsync("https://hotmail.com"); 
      return await response.Content.ReadAsStringAsync(); 
     } 
    } 
} 

ユニットテスト

[TestMethod] 
public void TestGet() 
{ 
    Foo foo = new Foo(); 

    foo.GetWebAsync().ContinueWith((k) => 
    { 
     Console.Write(k); 
     Assert.IsNotNull(null, "error"); 
    }); 
} 
+0

'VAR応答非同期(async)のテストを行います=クライアントを待ちます.GetAsync( "https:// hotmail .com "); return await response.Content.ReadAsStringAsync(); '.....なぜ2つのレスポンスではなく、すべてを待っていますか? – Hackerman

+0

@Hackerman私は新しく、コードは完璧ではありません。あなたはそれを解決するのに役立つことができますか? – user2727195

+0

http://codereview.stackexchange.com/ – Hackerman

答えて

3

同様

[TestMethod] 
public async Task TestGet() { 
    var foo = new Foo(); 
    var result = await foo.GetWebAsync(); 
    Assert.IsNotNull(result, "error"); 
    Console.Write(result); 
} 
コードのこの作品は、私には奇妙に見える
+0

で別の同様の質問を作成することができますありがとうございます、クイック質問、時々私の 'Console.Write(" .. ")出力がスタックトレース(エラーの場合)のほかにTestExplorerに表示される一度私は特定のテストを選択し、時には、任意のアイデアをしないでください? – user2727195

+0

私の 'GetWebAsync'の実装は正しいと思いますか? – user2727195

+1

@ user2727195開始はOKです。常に改善の余地があるが、それはこの質問の対象外であるOOPデザインの他の話題全体につながる – Nkosi