我正在尝试在某些单元测试中使用Worklight iOS本机客户端库。我发现测试因以下断言而崩溃:
XCTAssertNotNil([WLClient sharedInstance], @"wlclient shouldn't be nil");
使用以下stacktrace:
sharedTests.m:65: error: -[sharedTests testLogin] : (([WLClient sharedInstance]) != nil) failed: throwing "-[__NSDate getTime]: unrecognized selector sent to instance 0x2b5df90" - wlclient shouldn't be nil
2014-07-28 12:47:07.520 xctest[6456:303] -[__NSDate getTime]: unrecognized selector sent to instance 0x2953a90
<unknown>:0: error: -[sharedTests testLogin] : -[__NSDate getTime]: unrecognized selector sent to instance 0x2953a90
(
0 CoreFoundation 0x00b251e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x007988e5 objc_exception_throw + 44
2 CoreFoundation 0x00bc2243 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3 CoreFoundation 0x00b1550b ___forwarding___ + 1019
4 CoreFoundation 0x00b150ee _CF_forwarding_prep_0 + 14
5 sharedTests 0x066e1e55 +[System currentTimeMillis] + 85
6 sharedTests 0x066e672e -[DeviceContextPiggybacker init:] + 318
7 sharedTests 0x066eb1ff -[DeviceImpl init:::::] + 927
8 sharedTests 0x06718465 -[IOSWLDevice init] + 549
9 sharedTests 0x06729907 -[WLClient init] + 951
10 sharedTests 0x06729358 +[WLClient sharedInstance] + 120
想知道工作灯库是否需要特殊设置/拆卸,除了将必要的worklight.plist文件和Cookies.mom导入单元测试之外。
这只是iOS中的单元测试,除了工作灯之外没有任何依赖性。所以 - 步骤是
1:设置单元测试
2:包含worklight库
3:声明共享的worklight客户端在初始化时不是nil。
答案 0 :(得分:0)
我已尝试运行Xcode project you've provided,但在其他错误上失败,所以我已完成以下操作,在我的情况下,它已成功通过。
项目:https://www.dropbox.com/s/c03mndpky0r8c10/UnitTestProject.zip
打开* Tests.m文件并将以下内容添加到testExample
函数中:
XCTAssertNotNil([WLClient sharedInstance], @"wlclient shouldn't be nil");
最终结果(注意绿色复选标记):
修改:我将您的项目与我的项目进行了比较,并且您的项目有明显遗漏。
编译时,会显示以下错误,这与您在问题中所写的内容完全不同:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: -dynamic未指定以下标志无效:-ObjC错误:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: 无法找到以下文件:-lWorklightStaticLibProjectNative error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: file:-lWorklightStaticLibProjectNative不是目标文件(不是 在图书馆允许)
-ObjC
标记还缺少以下链接二进制文件库:libc ++。dylib,UIKit.framework,CoreGraphics.framework。
事实上,虽然文件夹“frameworks”包含其余部分,但它们并未在Linked Binary中与Libraries链接,所有这些都是。
由于上述原因,我还没有设法让你的工作。我此时得出的结论是,它无法挽救。请重新开始。
阅读培训模块并按照说明操作。确认它看起来像演示项目(我还重新上传它以包含丢失的文件)。