応答ヘッダーから Cookie を取得するために使用した次のメソッドがあります。
internal static func cookie(from response: HTTPURLResponse) -> HTTPCookie? {
guard let url = response.url else { return nil }
guard let headerFields = response.allHeaderFields as? HTTPHeaders else { return nil }
let cookies = HTTPCookie.cookies(withResponseHeaderFields: headerFields, for: url)
for cookie in cookies {
if cookie.name == "connect.sid" { return cookie }
}
return nil
}
nil
コードが適切なシナリオで返されることを確認する単体テストを作成しています。ただし、効果的にテストできないと思われる上記の方法の唯一の部分は次のとおりです。
guard let url = response.url else { return nil }
私のテストでは、上記のメソッドに渡す応答を作成します。
guard let response = HTTPURLResponse(url: url, statusCode: 200, httpVersion: nil, headerFields: responseHeaders) else { fatalError("Invalid response") }
の初期化子にHTTPURLResponse
はオプションではない が必要であるため、そのプロパティの値でURL
応答をテストする方法がわかりません。nil
url
これを でテストする方法はありnil
url
ますか?