如何测试rails应用程序和移动客户端之间的同步?

时间:2011-05-04 08:54:34

标签: ruby-on-rails api testing rspec mspec-ruby

我们需要确保我们的网络应用程序和移动客户端正确通信。

从服务器(带有rspec测试的Rails应用程序)到移动客户端(Ruby应用程序,具有mspec测试框架)以及从移动客户端到服务器的双方通信。

因此,为了确保同步机制按预期工作,我们需要测试以下内容:

  • 服务器正确准备数据。
  • 移动客户端请求和获取 正确的数据。
  • 移动客户端 准备    要发送到服务器的数据    正确。
  • 服务器接收和    解析来自的正确数据    移动客户端。
  • 服务器发送    回应移动客户端    一切都好。
  • 移动客户端    应该采取适当的行动    在设备上。

如何隔离测试?

1 个答案:

答案 0 :(得分: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 ...
}

等等。基本思想是将每个流程步骤的输入和输出放入常量,然后运行代码,为每个预期输入实现流程步骤并验证输出。大多数输出​​也是其他测试的输入。

如果有变化,则相应地更新输入/输出。运行测试。失败将告诉您必须更新哪些流程步骤。