2011-05-04 4 views
0

웹 응용 프로그램과 모바일 클라이언트가 올바르게 통신하는지 확인해야합니다.레일즈 애플리케이션과 모바일 클라이언트 간의 동기화를 테스트하는 방법은 무엇입니까?

서버 (rspec 테스트를 통한 Rails 애플리케이션)에서 모바일 클라이언트 (Ruby 애플리케이션, mspec 테스팅 프레임 워크) 및 모바일 클라이언트에서 서버로 양면 통신이 가능합니다.

  • 서버가 데이터를 올바르게 준비 :

    그래서 동기화 메커니즘은 우리가 다음 사항을 테스트 할 필요가 예상대로 작동하는지 확인합니다.
  • 모바일 클라이언트가 요청하여 데이터를 올바르게 가져옵니다.
  • 모바일 클라이언트 은 데이터를 서버 에 올바르게 보낼 수 있도록 준비합니다.
  • 서버 수신자 및 은 모바일 클라이언트의 올바른 데이터를 구문 분석합니다.
  • 서버가 모바일 클라이언트에 응답을 보내면 모두 문제가 없습니다.
  • 모바일 클라이언트 은 기기에서 적절한 조치 ( )를 수행해야합니다.

이것을 어떻게 테스트합니까?

답변

0

모든 테스트에서 예기치 않은 계획을 세우지 마십시오. 당신이 알고있는 것으로 시작하십시오. 예기치 못한 상황이 발생하면 테스트 할 다른 것을 알려줄만큼 빨리 추악한 머리를 뒤집습니다.

당신이 가지고있는 것은 실제로 분해하는 것이 간단합니다. 내 접근 방식은 다음과 같습니다.

public final static String SERVER_DATA = "Prepared data from the server"; 

@Test 
public void testServerPreparesDataCorrectly() throws Exception { 
    ... usual setup ... 
    String actual = server.handleRequest(CLIENT_REQUEST); 
    assertEquals(SERVER_DATA, actual); 
} 

public final static String CLIENT_REQUEST = "..."; 

@Test 
public void testClientRequest() throws Exception { 
    ... usual setup ... 
    String actual = client.getRequestData(...); 
    assertEquals(CLIENT_REQUEST, actual); 
} 

@Test 
public void testClientResponseProcessing() throws Exception { 
    ... usual setup ... 
    client.parseServerResponse(SERVER_DATA); 
    ... verify client state ... 
} 

등등. 기본 개념은 각 프로세스 단계의 입력과 출력을 상수에 넣은 다음 예상되는 각 입력에 대해 프로세스 단계를 구현하고 출력을 확인하는 코드를 실행하는 것입니다. 대부분의 출력은 다른 테스트를위한 입력입니다.

뭔가가 변경되면 그에 따라 입력/출력도 업데이트됩니다. 테스트를 실행하십시오. 그리고 실패는 어떤 프로세스 단계를 업데이트해야하는지 알려줍니다.

관련 문제