使用Xcode 6对OS X进行逻辑测试

时间:2014-10-15 21:15:03

标签: xcode testing xctest

我想在我的Xcode项目中实现单元测试,并希望在不要求启动应用程序的情况下运行测试。

原因是,我有一个基于核心数据的文档应用程序,它还使用cvdisplay链接来控制后台线程中的连续呈现。

令我感到震惊的是,我不需要运行的应用程序来测试核心数据数据模型功能,这应该与查看内容完全不同。此外,我想隔离和性能测试我的后台渲染过程,这对于运行应用程序来说似乎非常困难,但是可以在没有应用程序运行的情况下轻松完成,只需获取正确的类并为其提供正确的数据。

我已经看到其他问题在6之前有Xcode版本的答案,但答案似乎不适用于当前版本。

现在,文档区分了应用程序和库测试。针对库目标运行库测试。

我不确定我现在想要将我的代码重新组织成不同的库,并且宁愿避免它或以某种方式伪造它。

我在ios中看到了一个与此相关的openradar,但我对osx很感兴趣。

有没有人对此有任何了解?

编辑:学习如何应对现有的设置,测试完整的应用程序运行,我可以对其进行一些检查,然后关闭所有文档并关闭显示链接。

然后,我可以在内存数据存储区和上下文中运行测试创建自己的持久存储协调器,以及测试我的渲染类,而不必担心与其他显示线程冲突。

我现在遇到连接源代码的麻烦,我似乎无法正确使用它,我设置了一下,似乎工作了一点,然后突然停止使用未定义的符号来构建x86_64:错误,无论是与第三方私有框架链接的问题还是问题。我浏览网页,改变一些事情,再次开始工作。然后我添加一些测试,导入更多我的课程,事情再次停止工作。,......真气

编辑2:现在几乎全部排序,但可能效率不高。对于每个测试用例类,我打开或关闭文档,并在+(void)设置方法中启动或停止显示链接。我在+(void)tearDown中没有做任何事情,让设置决定如何根据当前状态继续进行。

虽然这意味着可以从一个测试类流到另一个最小化文档打开和关闭,但似乎没有办法订购测试以便我可以将它们组合在一起。

顺便说一句,我也解决了我提到的链接问题(XCode 6 Testing Target Troubles),虽然与这个问题没有关系。

1 个答案:

答案 0 :(得分:0)

听起来你已经登陆了标准解决方案:给你的应用程序一个方法来判断它是否正在进行测试而不是使用,然后让applicationDidFinishLaunching:不执行任何常规的启动时间行为,但请将其留给特定的测试,以提供他们需要的任何设置。

您可能会受益于创建多个测试套件来处理不同的预期条件,例如围绕特定文档打开的所有测试。