0

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

谢谢

4

1 回答 1

3

您不能以这种方式在 XCTest 方法之间传递信息。请参阅使用 Xcode 文档进行测试的以下内容(重点是我的)

对于每个类,测试从运行类设置方法开始。对于每个测试方法,都会分配一个新的类实例并执行其实例设置方法。之后它运行测试方法,然后是实例拆卸方法。该序列对类中的所有测试方法重复。在类中的最后一个测试方法拆解运行后,Xcode 执行类拆解方法并移动到下一个类。重复此序列,直到所有测试类中的所有测试方法都已运行。

如果有所有测试需要运行的信息,请考虑将其放入 setup 方法中。

于 2015-07-30T20:07:11.013 回答