2013-03-07 3 views
0

Windows Phone에 단위 테스트를 작성하여 데이터가 올바른 형식으로 deserialize되는지 테스트해야합니다. 이것은 내가 지금까지 해왔 던 것이다.Windows Phone에서 비동기 메서드를 테스트하는 방법

[TestMethod] 
    [Asynchronous] 
    public void SimpleTest() 
    { 
     await pots = help.potholes(); 

"냄비"는 기다릴 수 없다는 오류가 나타납니다. Pots는 내 webservice에 비동기 호출을하는 움푹 들어간 곳 함수의 결과를 받아 들여야하는 목록입니다.

Restsharp를 사용하여 전화를 거는 방법입니다.

public void GetAllPotholes(Action<IRestResponse<List<Pothole>>> callback) 
    { 

     var request = new RestRequest(Configuration.GET_POTHOLE_ALL,Method.GET); 
     request.AddHeader("Accept", "application/json"); 
     _client.ExecuteAsync(request, callback); 

    } 

어떻게하면 화분을 기다릴 수 있습니까? Windows Phone에서 나머지 서비스를 테스트하는 올바른 방법은 무엇입니까?

것은 내가 윈도우 폰 툴킷 테스트 프레임 워크

를 사용하고 이것은 내가 다음하고있는 튜토리얼입니다. 당신은 비동기를 사용하는 .. Asynchronous tests

답변

1

용어 "비동기"시도 잘못된 방법으로 기다리고 있습니다.

말씀하신 기사는 awaitable 방법이 아니라 콜백을 통해 비동기 방식을 의미한다.

어떻게 테스트 할 수 있었는지 대략적인 아이디어입니다. 당신이 당신의 코드 조각에서 볼 수 있듯이 매트는, 윈도우 폰에 대한 시험 방법의 경우, 비동기 지금은 여러 상황에서 사용되는 용어 표현으로

[TestMethod]   
[Asynchronous] 
public void SimpleTest() 
{ 
    // set up your system under test as appropriate - this is just a guess 
    var help = new HelpObject(); 

    help.GetAllPotholes(
     response => 
     { 
      // Do your asserts here. e.g. 
      Assert.IsTrue(response.Count == 1); 

      // Finally call this to tell the test framework that the test is now complete 
      EnqueueTestComplete(); 
     }); 
} 
0

지금 그물에 과부하이

public async void SimpleTest() 
{ 
    pots = await help.potholes(); 
    .... 
} 
1

키워드 아니다, 그러나이있다 그 때문 작업 스레드를 릴리스하여 다른 프로세스가 실행되도록 허용하고 테스트 메소드가 UI 또는 서비스 요청에서 발생할 수있는 변경 사항을 기다리는 것을 목표로합니다.

시험을 기다리려면 다음과 같이하십시오.

[TestClass] 
public class ModuleTests : WorkItemTest 
{ 
    [TestMethod, Asynchronous] 
    public void SimpleTest() 
    { 
     var pots; 
     EnqueueDelay(TimeSpan.FromSeconds(.2)); // To pause the test execution for a moment. 
     EnqueueCallback(() => pots = help.potholes()); 
     // Enqueue other functionality and your Assert logic 
     EnqueueTestComplete(); 
    } 
} 
관련 문제