0

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

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

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

  • 服务器正确准备数据。
  • 移动客户端请求并获取正确的数据。
  • 移动客户端正确准备要发送到服务器的数据。
  • 服务器从移动客户端接收并解析正确的数据。
  • 服务器向移动客户端发送一切正常的响应。
  • 移动客户端应在设备上执行适当的操作。

如何单独测试这个?

4

1 回答 1

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 ...
}

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

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

于 2011-05-04T09:23:39.507 回答