XCTest:[UIApplication sharedApplication] 返回 nil

Posted

技术标签:

【中文标题】XCTest:[UIApplication sharedApplication] 返回 nil【英文标题】:XCTest: [UIApplication sharedApplication] is returning nil 【发布时间】:2015-09-03 22:35:32 【问题描述】:

我用 Objective-C 编写了一个包含所有实用程序(通用)功能的框架。由于它是一个框架,它没有 App 委托文件。

我已经创建了一个 UIApplication 类,里面有几个实用方法。

@interface TestApplication : UIApplication

- (void)initialLockSetUp;
// more...

现在从我的单元测试文件中,我如何测试这个“initialLockSetUp”方法? 当我调用(TestApplication*)[UIApplication sharedApplication] 时,它返回 nil。

【问题讨论】:

您是否尝试过更改测试目标? 为什么需要UIApplication的子类? 【参考方案1】:

如果由于某种原因您需要 UIApplication 实例进行测试,则测试目标的测试主机应该是应用程序。然后,您可以将您的框架链接到该测试目标。现在[UIApplication sharedApplication] 将返回一个有效的UIApplication 实例。操作系统会在应用启动时创建此实例,因此您将无法对其进行子类化。

这是项目设置的截图:

【讨论】:

以上是关于XCTest:[UIApplication sharedApplication] 返回 nil的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 5.0.2 dyld:库未加载:@rpath/XCTest.framework/Versions/A/XCTest

XCTest/XCTest.h 文件未找到 XCode 5.1.1 iOS7

dyld:库未加载:@rpath/XCTest.framework/XCTest 原因:找不到图像

在非测试目标中使用 XCTest

XCTest.framework 构建错误

XCTest 找不到文本字段