2011-05-04 68 views
0

我們需要確保我們的Web應用程序和移動客戶端正確通信。如何測試rails應用程序和移動客戶端之間的同步?

從服務器(帶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 ... 
} 

等等。其基本思想是將每個工藝步驟的輸入和輸出放入一個常量中,然後運行實現每個預期輸入的工藝步驟並驗證輸出的代碼。大多數產品也是其他測試的輸入。

如果有變化,則相應地更新輸入/輸出。運行測試。而失敗會告訴你哪些流程步驟需要更新。

相關問題