Я пытаюсь провести некоторое модульное тестирование API.Вот актуальная функция.
func registerApi(path: String, player_id: Int, contest_id: Int, country_id: Int, success: () -> Void)
{
ServiceHelper.sharedInstance.sendRequest(path: "register-country",
params: ["api_token": Constants.USER_INFO["api_token"].rawValue,
"player_id": player_id,
"country_id": country_id,
"contest_id": contest_id],
showSpinner: true,
completionHandler:
{ (response, error) in
if (error != nil)
{
Test to be failed
}
else
{
Test Passed
}
})
}
А теперь вот функция тестирования для модульного тестирования.
func testApiWorking()
{
let controller = WorldCupChooseCountryVC()
let expected = XCTestExpectation(description: "Some Countries to return")
controller.registerApi(path: "get-country", player_id: 163, contest_id: 1, country_id: 1) { success in if success { expected.fulfill() }
else{
XCTFail()
}
}
waitForExpectations(timeout: 1.0) { (_) -> Void in
}
}
Но всякий раз, когда я пытаюсь проверить это, я получаю следующую ошибку.
[UIApplication applicationState] must be used from main thread only
Однажды, он также прошел хорошо, тест не прошел, но он запустился.Но это даже не работает сейчас.