XCTest:传递函数参数

时间:2015-07-30 18:33:37

标签: ios swift unit-testing xctest xctestexpectation

从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. 
    }

由于

1 个答案:

答案 0 :(得分:2)

您无法以这种方式在XCTest方法之间传递信息。请参阅Testing with Xcode Docs(强调我的)

中的以下内容
  

对于每个类,测试从运行类安装方法开始。 :用于   每个测试方法,分配一个新的类实例及其   实例设置方法已执行。之后它运行测试方法,   然后是实例拆解方法。这个序列重复   课堂上的所有测试方法。最后一次测试方法拆解后   在已经运行的类中,Xcode执行了类拆解方法   然后继续下一堂课。这个序列重复直到全部   已经运行了所有测试类中的测试方法。

如果有信息表明您需要运行所有测试,请考虑将其放入设置方法中。