适用于iPhone的OCMock(iOS4,XCode 3.2.3)

时间:2010-07-08 14:21:22

标签: iphone unit-testing xcode ocunit ocmock

我有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

3 个答案:

答案 0 :(得分:4)

我有同样的问题,这是我如何解决它:

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

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

  • 构建OCMockPhoneSim目标

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

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

然后它有效!

希望这有帮助。

答案 1 :(得分:1)

答案 2 :(得分:0)

user3135374的答案主要帮助我实现这一目标。

其他信息:

  • SDK必须是iPhone模拟器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