【发布时间】:2020-04-09 02:37:32
【问题描述】:
【问题讨论】:
-
您是否将其添加到测试目标的构建阶段?
-
为什么不直接调用 https 来打开天气图……更简单……
-
@jbiser361 是的,但假设 OpenWeatherMap 每次我拨打电话都会收取 X 金额。
-
哦,你的权利......他们做到了
【问题讨论】:
您的代码正在使用Bundle.main,但您将文件放在测试目标中(代码上下文中的/bundle)。
我不确定如何获取测试包,但根据this question,您应该可以这样做:
guard let url = Bundle(for: MockWeatherService.self).url(forResource: "openweathermap-response", withExtension: "json"),
然后是 guard 声明的其余部分
【讨论】:
Bundle.main 是运行测试时的测试包,它也可以工作,因为它获取了该特定类的包。