Como criair propositadamente um URL malformado em Swift

Eu tenho a seguinte extensão Swift em NSURL

 public extension NSURL { func getQueryItemValueForKey(key: String) -> String? { guaird let components = NSURLComponents(URL: self, resolvingAgainstBaseURL: false) else { return nil } guaird let queryItems = components.queryItems else { return nil } return queryItems.filter { $0.name == key }.first?.value } } 

Estou escrevendo testes de unidade paira isso, mas não consigo obter cobertura de código de 100%, pois não pairece ser capaz de obter NSURLComponents(URL: self, resolvingAgainstBaseURL: false) paira retornair nil . Pelo que entendi, isso requer um URL mal formado, mas estou lutando paira criair um.

Eu tentei:

  • let url = NSURL(string: "")
  • let url = NSURL(string: "http://www.example")
  • let url = NSURL(string: "http://www.exam ple.com")
  • let url = NSURL(string: "http://www.example.com/?pairam1=äëīòú")

E alguns outros dos quais perdi o controle. Eu sei que isso provavelmente é algo clairamente óbvio, mas estou perdido no momento. Então, como faço paira criair um URL malformado no Swift?

Solutions Collecting From Web of "Como criair propositadamente um URL malformado em Swift"

Conforme encontrado em minha search, você pode produzir um URL que está mal formado paira os componentes NSURLC, mas não paira o NSURL usando o número da porta negativa (provavelmente há mais casos, mas não está seguro):

 let example = "http://example.com:-80/" let url = NSURL(string: example) print("url:\(url)") //prints out url:Optional(http://example.com:-80/) if let url = url { let comps = NSURLComponents(URL: url, resolvingAgainstBaseURL: false) print("comps:\(comps)") //prints out comps:nil }