2017-02-03 2 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에 응답 비동기 테스트를 확인 = 클라이언트를 기다리고 있습니다. GetAsync ("https : // hotmail .com "); return response.Content.ReadAsStringAsync();'..... 왜 두 응답을 기다리지 않고 모두 기다려야합니까? – 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

에 다른 비슷한 질문을 만들 수 있습니다. 감사합니다. 빠른 질문입니다. 때때로 StackExplorer에 내 Console.Write ("..") 출력이 스택 추적 (오류 인 경우) 일단 특정 테스트를 선택하고 때로는 어떤 생각을하지 않습니까? – user2727195

+0

'GetWebAsync'에 대한 제 구현이 정확하다고 생각합니까? – user2727195

+1

@ user2727195 시작하려면 괜찮습니다. 항상 개선의 여지가 있지만 OOP 디자인의 전체 주제는이 질문의 범위를 벗어납니다 – Nkosi