如何测试依赖于UIUserInterfaceIdiom(ios)的代码
我有一些Objective-C [i-os]代码,我想使用XCode运行单元测试.它根据设备类型访问不同的元数据,使用:
[[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad 我遇到的问题是,当我运行单元测试时,此结果始终为真.理想情况下,能够将其设置为测试运行会很棒. 我猜它可以做的方法是创建一个封装设备检查的类并模拟测试.但我认为,如果有更好的解决方案,可能值得一看. 供参考,nice blog post with many links,Apple Unit testing guide和Unit test sample code project. 解决方法
今天早上我尝试了几种不同的方法:
>使用仅链接到我的测试目标的UIDevice类别.在该类别中,我将使用partialMock实现(OCMock)覆盖currentDevice并存根必要的方法,以便它强制返回Pad或Phone到我的特定测试.它应该有工作,但很难弄乱像UIDevice或UIApplication这样的类,模拟器经常崩溃,这是一个不好的迹象. 如果你愿意,我可以就这个问题分享一些代码.是的,这是一个疲惫的! 你是如何设法解决这个问题的? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |