3

我有最新版本的OCMock (1.55) 和 XCode 3.2.3。

我在我的项目中创建了一个测试包目标。在我的测试中使用 OCMock 的最佳方式是什么? 当我将 OCMock.framework 添加到测试包时,会出现此构建错误:

  "_OBJC_CLASS_$_OCMockObject", referenced from:
  objc-class-ref-to-OCMockObject in NotificationTests.o
  ld: symbol(s) not found
  collect2: ld returned 1 exit status
4

3 回答 3

4

我有同样的问题,这是我解决它的方法:

  • 删除 ocmock.framework、复制文件阶段以及链接到 ocmock 标头的任何搜索路径。

  • 从 ocmock svn repo 查看最新版本:http: //svn.mulle-kybernetik.com/OCMock/trunk

  • 构建 OCMockPhoneSim 目标

  • 复制项目文件夹中的 libOCMock.a 和 Headers 文件夹

  • 将 libOCMock.a 添加到您的框架中,并在您的目标库搜索路径中添加指向 headers 文件夹的链接。

然后它的工作原理!

希望这可以帮助。

于 2010-07-23T10:07:55.033 回答
1

请参阅Colin Barrett 的“OCMock 和 iPhone”教程

于 2010-07-08T14:23:52.777 回答
0

user3135374 的回答主要帮助我完成了这项工作。

附加信息:

  • SDK 必须是 iPhone Simulator 4.0,因为 3.2 有一个错误,导致它无法正确运行单元测试。很多人都在抱怨它。我将此设置为我的单元测试目标的 BaseSDK。

  • 您需要将其他链接器标志“-ObjC -force_load $(PROJECT_DIR)/path/to/libOCMock.a”添加到您的单元测试目标,否则您将收到很多运行时“无法识别的选择器发送到实例”错误

  • 如果您想要一个具有单元测试的目标,您实际上可以按照本教程进行调试(设置断点): http ://www.lostechies.com/blogs/scottdensmore/archive/2010/07/24/debugging-unit-tests-for -the-iphone-ipad.aspx

OCMock 论坛上的这个帖子有一个您可以使用的示例项目:

http://www.mulle-kybernetik.com/forum/viewtopic.php?f=4&t=73&p=119#p119

于 2010-07-27T16:30:44.840 回答