使用 XCTest 在单元测试中获取变量的 nil 值
Posted
技术标签:
【中文标题】使用 XCTest 在单元测试中获取变量的 nil 值【英文标题】:Getting nil value for the variable in Unit Test using XCTest 【发布时间】:2014-02-03 15:01:25 【问题描述】:appDelegate 实例显示 nil 值,测试用例“testAppDelegate”失败。 苹果开发者网站提供的示例代码也是如此,但正在使用 SenTestCase,请帮帮我,即使目标是根据 WWDC 2013 视频"Testing in Xcode 5 session 409"
@interface Tests : XCTestCase
AppDelegate *appDelegate;
AppViewController *appVC;
UIView *appView;
@end
@implementation Tests
- (void)setUp
[super setUp];
appDelegate = [[UIApplication sharedApplication] delegate];
appVC = appDelegate.appViewController;
appView = appVC.view;
- (void)tearDown
[super tearDown];
- (void)testAppDelegate
XCTAssert(appDelegate, @"Cannot find the application delegate");
- (void)testCheckForViewInitializatio
XCTAssert(appVC, @"AppViewController initialized");
【问题讨论】:
【参考方案1】:试试这个:
转到项目设置 选择您的测试目标 在General标签切换Target部分到您的主要目标再次运行
【讨论】:
按照你说的这样做之后,应用程序正在模拟器上启动应用程序而不是测试应用程序。控制台上没有 cmets。 @user24991 也许你是 Run (Product->Run) 而不是 Test (Product->测试)?【参考方案2】:安东给出了正确的建议。 但如果它不起作用(如我的情况)尝试:
删除现有的测试目标
创建新的测试目标(左窗格中的第 5 个选项卡 -> 点击左下角的 +
-> 新测试目标)和
在出现的窗口中不要忘记选择您的应用程序作为测试目标。
将所有 TestCases 文件添加到新目标。
我不知道原因,但是在此操作之后,当我使用新目标运行测试时,它开始正常工作。
【讨论】:
以上是关于使用 XCTest 在单元测试中获取变量的 nil 值的主要内容,如果未能解决你的问题,请参考以下文章