iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – 使用OCMock 1.77进行iOS4和Xcode 4 / SDK4.3的单元和应用程序测试大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我试图使用OCmock 1.77进行iOS4和 Xcode 4 / SDK4.3的单元和应用程序测试.我按照说明使用OCmock作为静态库,在这里找到: http://www.mulle-kybernetik.com/software/OCmock/.单元和应用程序测试在没有OCmock的情况下运行良好. 当我添加OCmock并尝试运行OCmock的模拟器测试套件(单元测​​试)时,我的测试装置崩
我试图使用OCmock 1.77进行iOS4和 Xcode 4 / SDK4.3的单元和应用程序测试.我按照说明使用OCmock作为静态库,在这里找到: http://www.mulle-kybernetik.com/software/OCMock/.单元和应用程序测试在没有OCmock的情况下运行良好.

当我添加OCmock并尝试运行OCmock的模拟器测试套件(单元测​​试)时,我的测试装置崩溃了代码134.测试装置运行良好的设备(应用程序测试).如果我查看控制台,我会看到下面的消息 – 这表明我没有按照上述URL中的说明添加-force_load链接器标志.但我有……有什么想法吗?

我看了这个:Test rig exited abnormally with code 134 with OCMock verify on iOS 4这表明这个行为是一个@L_489_10@ – 但我不确定它是否是相同的情况,因为我正在运行OCmock测试套件.如果它是一个bug,是否有在单元测试中使用模拟的解决方法

TIA.

=====

控制台输出

3/30/11 1:02:32 AM  otest[38552]    *** TerminaTing app due to uncaught exception 'NSInternalInconsistencyException',reason: '** Expected method not present; the method getArgumentATindexAsObject: is not implemented by NSInvocation. If you see this exception it is likely that you are using the static library version of OCmock and your project is not configured correctly to load categories from static libraries. Did you forget to add the -force_load linker flag?'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x004a05a9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x002cf313 objc_exception_throw + 44
    2   CoreFoundation                      0x00458ef8 +[NSException raise:format:arguments:] + 136
    3   CoreFoundation                      0x00458e6a +[NSException raise:format:] + 58
    4   LogicTests                          0x00f89de4 +[OCmockObject initialize] + 115
    5   libobjc.A.dylib                     0x002cfd9b _class_initialize + 380
    6   libobjc.A.dylib                     0x002d773f prepareForMethodLookup + 73
    7   libobjc.A.dylib                     0x002ce069 lookUpMethod + 86
    8   libobjc.A.dylib                     0x002ce1d6 _class_lookupMethodAndLoadCache + 40
    9   libobjc.A.dylib                     0x002e10e3 objc_msgSend + 87
    10  SenTesTingKit                       0x20108824 +[NSObject(SenTestRuntimeUtilities) senAllSubclasses] + 107
    11  SenTesTingKit                       0x201074a7 +[SenTestSuite updateCache] + 39
    12  SenTesTingKit                       0x20107443 +[SenTestSuite suiteForBundleCache] + 92
    13  SenTesTingKit                       0x201073a4 +[SenTestSuite testSuiteForBundlePath:] + 108
    14  SenTesTingKit                       0x2010606b +[SenTestProbe specifiedTestSuite] + 332
    15  SenTesTingKit                       0x20106792 +[SenTestProbe runTests:] + 156
    16  otest                               0x000023c7 0x0 + 9159
    17  otest                               0x000025f2 0x0 + 9714
    18  otest                               0x0000209a 0x0 + 8346
    19  otest                               0x00002049 0x0 + 8265
)

解决方法

我可以通过删除-force_load标志来重现这一点.检查以确保它已设置在测试目标上,而不是主目标上,并指向静态库的正确位置.在我的情况下,那是

-force_load $(PROjeCT_DIR)/Libraries/libOCmock.a

链接other SO question只是说当mock的verify方法失败时,它会从NSInvocation上的类别方法抛出异常,这会导致otest崩溃.它仍然有效;消息比断言失败更加神秘,XCode将其标记为测试类中的@L_489_10@.

大佬总结

以上是大佬教程为你收集整理的iphone – 使用OCMock 1.77进行iOS4和Xcode 4 / SDK4.3的单元和应用程序测试全部内容,希望文章能够帮你解决iphone – 使用OCMock 1.77进行iOS4和Xcode 4 / SDK4.3的单元和应用程序测试所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。