代码之家  ›  专栏  ›  技术社区  ›  Dilshan

在Sen框架中测试异步响应

  •  1
  • Dilshan  · 技术社区  · 14 年前

    我正在使用iPhone Sen测试框架进行测试。我需要测试来自服务器的异步响应。有谁能帮我找到测试的方法吗。

    3 回复  |  直到 14 年前
        1
  •  3
  •   Adam Milligan    14 年前

    这可能是个重复的问题,但我不同意原问题的答案。我已经详细地描述了为什么要问这个问题。

    总之,为测试创建自定义运行循环是复杂而脆弱的。如果删除对返回异步响应的外部服务的依赖并模拟测试中的响应,则测试将更一致、更快地运行。这样,如果外部服务关闭,您的测试就不会失败,并且您的测试将运行得更快。

    Here is an example .

        2
  •  1
  •   drekka    14 年前

    我不使用Sen测试,因为它不在模拟器或设备中运行(或者至少在我去年刚开始做Objective C时没有),而是使用 GHUnit OCMock 作为一个模仿框架。GHUnit将在设备上运行测试,以确保代码正确无误。OCMock允许完全mocking、部分mocking和方法swizzing,这是单元a测试的强大工具。

    1. 单元测试单个组件(GHUnit和OCMock)。在这里,您可以直接调用方法并模拟类将运行的环境。所以您不需要服务器设置来测试异步调用。只需在单元测试中实例化类并调用它的方法。

    2. 集成测试。(仅限GHUnit)在这里,您需要执行一个基本测试,以确保您对代码和服务器之间的通信的理解是正确的。所以这是你需要服务器的地方。根据你的需要,这可能是很多或是一些工作。例如,当我完成这项工作时,我刚刚用一个EJB3 bean设置了一个glassfish服务器来模拟我要连接到的服务器。其中重要的一点是,您设置的服务器的行为方式必须与最终的生产服务器完全相同。

    所以基本上是双管齐下。单元测试检查代码的每个角落和缝隙。集成测试,以确保与服务器的整体通信得到正确处理。

        3
  •  0
  •   hfossli    11 年前