OCMock适用于iPhone(iOS4,XCode 3.2.3)

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

我也有这个问题。 - nduplessis
3个回答

4

我之前也遇到了同样的问题,以下是我解决此问题的方法:

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

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

  • 构建OCMockPhoneSim目标

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

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

然后它就可以工作了!

希望这能帮到您。


1

1
尝试将“复制文件”阶段添加到目标中,但对我来说没有起作用。出现相同的错误。 - alexey

0

user3135374的回答帮助我解决了大部分问题。

附加信息:

  • SDK必须是iPhone模拟器4.0,因为3.2有一个bug,使其无法正确运行单元测试。许多人都在抱怨这个问题。我将其设置为我的Unit Test目标的BaseSDK。

  • 您需要向Unit Test目标添加其他链接器标志“-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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接