XCTest: передача параметра функции
Из файла XCTest я вызываю вызов веб-службы и поставил блок ожидания, используя API "self.waitForExpectationsWithTimeout", чтобы получить ответ службы.
У меня есть несколько методов тестирования, которые будут выполнены с этим ответом службы. Когда я сохраняю этот ответ в глобальной переменной и обращаюсь к нему из другой тестовой функции, эта переменная имеет значение nil. Что нужно сделать здесь? Могу ли я передать его в качестве параметра функции?
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 ответ
Вы не можете таким образом передавать информацию между методами XCTest. Посмотрите следующее из Тестирования с Документами Xcode (Выделение мое)
Для каждого класса тестирование начинается с запуска метода настройки класса. Для каждого метода тестирования выделяется новый экземпляр класса и выполняется метод установки его экземпляра. После этого он запускает тестовый метод, а после этого метод восстановления экземпляра. Эта последовательность повторяется для всех методов тестирования в классе. После того, как последний метод тестирования метода был выполнен в классе, XCode выполняет метод класса разрыв и переходит к следующему классу. Эта последовательность повторяется до тех пор, пока не будут запущены все методы тестирования во всех классах тестирования.
Если есть информация, что весь ваш тест должен быть выполнен, попробуйте включить его в метод настройки.