2010-11-02 81 views
0

我目前使用GHUnitOCMock来测试我的应用程序。我使用它们是因为我喜欢可以在实际设备上运行测试代码的事实。设计可测试性的iPhone/iPad应用程序

我的应用程序目前的设计方式是我有一些中央服务和对象通过应用程序委托上的属性可用。例如,我集中了一些可以通过[UIApplication sharedApplication].coreData访问的核心数据功能。

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

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

我正在考虑的一件事是将此功能提取到单独的对象,以便我可以使用OCMock来模拟它以进行测试。

有什么想法?

回答

0

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

0

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

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