从XCTest文件,我正在调用Web服务调用并使用“self.waitForExpectationsWithTimeout”API放置一个等待块并获取服务响应。
我使用此服务响应执行的测试方法很少。当我将此响应存储在全局变量中并从其他测试函数访问它时,此变量将为零。这需要做什么?我可以将它作为函数参数传递吗?
let serviceResp :NSDictionary!
func test_One() {
//let expectation: XCTestExpectation = self.expectationWithDescription("HTTP")
datamanager.fetchData() //Web service
self.waitForExpectationsWithTimeout(5, handler: { (error: NSError!) -> Void in
//In 5 seconds, I will get response from service and will be stored in datamanager.response.
self.serviceResp = datamanager.response
})
}
func test_Two() {
//self.serviceResp is coming as nil even after assigning a value to it.
}
由于
答案 0 :(得分:2)
您无法以这种方式在XCTest方法之间传递信息。请参阅Testing with Xcode Docs(强调我的)
中的以下内容对于每个类,测试从运行类安装方法开始。 :用于 每个测试方法,分配一个新的类实例及其 实例设置方法已执行。之后它运行测试方法, 然后是实例拆解方法。这个序列重复 课堂上的所有测试方法。最后一次测试方法拆解后 在已经运行的类中,Xcode执行了类拆解方法 然后继续下一堂课。这个序列重复直到全部 已经运行了所有测试类中的测试方法。
如果有信息表明您需要运行所有测试,请考虑将其放入设置方法中。