无法访问 XCTestCase Objective C 中的单例对象
Posted
技术标签:
【中文标题】无法访问 XCTestCase Objective C 中的单例对象【英文标题】:Not able to access singleton object inside XCTestCase Objective C 【发布时间】:2016-05-16 06:42:45 【问题描述】:我正在编写一个 XCTestCase 用于一些计时器验证。我的计时器每 30 秒运行一次,我在单例对象 MySessionObject
中跟踪运行计数,其中 MySessionObject
是指向 [MySession sharedSession]
的宏。
问题是,当我执行测试时,我总是在MySessionObject.timerCount
中得到0
。但是,当我通过应用程序目标运行它时,它会正确设置。
我在这里缺少什么来加载单例的任何线索?我的假设是它应该在我的测试目标启动应用程序时设置。
NSInteger timerCountsToTest = 2;
// Adding a delay to counter network operation
[NSThread sleepForTimeInterval:(30 * timerCountsToTest) + 2];
XCTAssertEqual(timerCountsToTest, MySessionObject.timerCount, "Timer did not work properly.");
【问题讨论】:
我相信这与工作空间有关。测试工作区与应用程序工作区不同。 @JoshCaswell 请看看我的回答。我是这样解决的。如果您有更好的解决方案,请告知。 【参考方案1】:最终,我不得不在应用程序中放置一个隐藏的UITxtField
,并将计时器计数器设置为该文本字段中的文本,然后从 UI 脚本中获取它。如果有人有更好的方法,请告知。
【讨论】:
以上是关于无法访问 XCTestCase Objective C 中的单例对象的主要内容,如果未能解决你的问题,请参考以下文章