【问题标题】:How to test synchronization between rails application and mobile client?如何测试rails应用程序和移动客户端之间的同步?
【发布时间】:2011-05-04 08:54:33
【问题描述】:

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

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

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

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

如何单独测试?

【问题讨论】:

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


    【解决方案1】:

    对于所有测试,不要为意外做好准备。从你所知道的开始。出乎意料的事情很快就会抬起它的丑陋脑袋,告诉你还应该测试什么。

    如果你把它拆开,你所拥有的实际上很容易测试。这是我的方法:

    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-02-23
      • 1970-01-01
      • 2016-01-02
      • 1970-01-01
      • 2015-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-25
      相关资源
      最近更新 更多