0
私は右の私のユニットテストを取得し、トラブルを抱えている
、私はデータが私の構造体であることをチェックしたい、しかし私はテストがあるため失敗がいくつあるかのアイテムプリントアウトする私の機能を得ることができます期待は戻ってこない。 私はユニットテストは良いアイデアである理由あなたが正常に実証されてきたスウィフトユニットテスト:非同期
XCTAssertNotNil(self.players.countPlayers)
HERESに私の機能のタイトル
public func getPlayer(completionHandler: @escaping (Data?, URLResponse?, Error?) -> (Swift.Void)
) throws{
let jsonUrl: String = "http://api.football-data.org/v1/teams/78/players"
//print(jsonUrl)
// NSURL sessions allow us to download data using HTTP for APIs
// a NSURL which contains a correct resourse
guard let leagueURL = NSURL(string: jsonUrl)else{
print("error creating string")
throw JSONError.InvalidURL(jsonUrl)
}
let task = URLSession.shared.dataTask(with: leagueURL as URL) {data, responce, error in
do {
let json = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as! NSDictionary
self.searchLeague = []
for item in json["players"] as! [[String: AnyObject]]{
guard let name = ((item["name"]!) as? String) else{
throw JSONError.InvalidKey("invalid player name")
}
guard let position = ((item["position"]!) as? String) else{
throw JSONError.InvalidKey("invalid player position")
}
let jerseyNumber = (((item["jerseyNumber"]!) as? String) ?? ("No Assigned jersey number"))
guard let dateOfBirth = ((item["dateOfBirth"]!) as? String) else{
throw JSONError.InvalidKey("invalid player DOB")
}
guard let nationality = ((item["nationality"]!) as? String) else{
throw JSONError.InvalidKey("invalid player DOB")
}
let marketvalue = (((item["marketValue"]!) as? String) ?? ("Market value info not available"))
self.searchPlayer.append(Player(name: name, position: position, jerseyNumber: jerseyNumber, dateOfBirth: dateOfBirth, nationality: nationality, marketValue: marketvalue))
}
}catch{
print("error thrown: \(error)")
}
print("Num of Players \(self.searchPlayer.count)")
}
task.resume()
}
と私のテスト
func testGetPlayers(){
let expectations = expectation(description: "Wait for exception")
try! self.players.getPlayer{_,_,_ in
expectations.fulfill()
}
waitForExpectations(timeout: 5) { error in
}
}