【问题标题】:Unable to read JSON file in Swift inside Unit Test Project无法在单元测试项目中的 Swift 中读取 JSON 文件
【发布时间】:2020-04-09 02:37:32
【问题描述】:

我不知道为什么,但我无法在我的 Swift 单元测试项目中读取 json 文件。我错过了什么。 url 是空对象,它只是跳到完成(无)第 20 行。

【问题讨论】:

  • 您是否将其添加到测试目标的构建阶段?
  • 为什么不直接调用 https 来打开天气图……更简单……
  • @jbiser361 是的,但假设 OpenWeatherMap 每次我拨打电话都会收取 X 金额。
  • 哦,你的权利......他们做到了

标签: ios swift


【解决方案1】:

您的代码正在使用Bundle.main,但您将文件放在测试目标中(代码上下文中的/bundle)。

我不确定如何获取测试包,但根据this question,您应该可以这样做:

guard let url = Bundle(for: MockWeatherService.self).url(forResource: "openweathermap-response", withExtension: "json"),

然后是 guard 声明的其余部分

【讨论】:

  • 我想如果我正在运行测试项目,那么 bundle.main 将是测试项目。
  • 我认为捆绑包取决于您的文件夹结构和文件定义的目标,因此它不会改变。但是(假设此解决方案有效)即使 Bundle.main 是运行测试时的测试包,它也可以工作,因为它获取了该特定类的包。
猜你喜欢
  • 1970-01-01
  • 2012-09-02
  • 2023-04-06
  • 2013-10-11
  • 1970-01-01
  • 2018-07-17
  • 2015-10-15
  • 2016-11-12
  • 1970-01-01
相关资源
最近更新 更多