1

応答ヘッダーから 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応答をテストする方法がわかりません。nilurl

これを でテストする方法はありnil urlますか?

4

1 に答える 1