【问题标题】:iOS: Programmable Network Link Conditioner for TestingiOS:用于测试的可编程网络链路调节器
【发布时间】:2016-06-21 16:01:12
【问题描述】:

有没有办法在代码运行时为您自己的代码以可编程的方式创建类似于 iOS Network Link Conditioner 的效果?

我要测试的具体条件是“登录流程的第 1 步有效,但第 2 步的网络中断”。这很难手动测试,因为我猜你必须设置一个断点,打开飞行模式,然后恢复应用程序。这会引入观察错误,因为断点会影响应用程序的时序和控制流。

理想情况下,您可以设置自己的延迟和丢失参数,类似于实际的网络链接调节器,但即使只是能够在特定时间打开和关闭网络就足够了。

【问题讨论】:

    标签: ios nsurlsession


    【解决方案1】:

    最好的方法可能是使用模拟对象代替NSURLSession 将数据传递给真正的NSURLSession 类或生成虚假错误。例如,在您的前缀标头中,您可以添加一个条件 #define,将 NSURLSession 替换为不同的类名,然后在包装类的标头和实现文件中添加 #undef。

    您还可以将真正的 NSURLSession 类转换为模拟对象,方法是调配您的应用调用的各种方法并使用自定义逻辑包装它们。

    如果您决定采用 swizzling 方法,那么我建议您阅读 https://blog.newrelic.com/2014/04/16/right-way-to-swizzle/ 以了解如何在 swizzling 时避免常见错误(尽管我猜想测试永远不会发布的代码,这不太重要)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-09
      • 2018-07-31
      • 2023-04-04
      • 2015-07-25
      • 1970-01-01
      • 1970-01-01
      • 2012-03-28
      • 1970-01-01
      相关资源
      最近更新 更多