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

为测试性设计iPhone/iPad应用程序

  •  0
  • drekka  · 技术社区  · 14 年前

    我正在使用 GHUnit OCMock 测试我的应用程序。我使用它们是因为我喜欢这样一个事实:我可以在实际的设备上运行测试代码。

    我的应用程序当前的设计方式是通过应用程序代理的属性提供一些中心服务和对象。例如,我集中了一些核心数据功能,可以通过 [UIApplication sharedApplication].coreData .

    我遇到的问题是,为了在设备或模拟器上运行单元测试,GHUnit使用自己的应用程序委托,而该委托没有这些属性。所以,如果一个单元触发了想要访问它们的代码,它就会失败。

    所以我正在研究应用程序的设计,想知道我是否应该重新设计这些核心设施的可用方式。你们如何设计你们的应用程序?

    我正在考虑的一件事是将这个功能提取到一个单独的对象中,这样我就可以使用ocmock来模拟它进行测试。

    有什么想法吗?

    2 回复  |  直到 14 年前
        1
  •  0
  •   drekka    14 年前

    经过一段时间的思考,我意识到有一个更简单的解决方案。我创建了一个带有应用程序委托界面的类别,该界面应用于运行测试时使用的gu单元应用程序委托。这样我就可以让测试运行,并在必要时使用此类别返回OC模拟。

        2
  •  0
  •   drekka    14 年前

    还有另一种技术。这次我扩展了gh单元测试iPhone应用程序委托,并添加了我需要的方法和属性。然后我修改了主类来调用它而不是原始类。

    啊,有这么多方法可以达到同样的效果:—)