Swift:OHHTTPStubs 的测试实现显示错误
Posted
技术标签:
【中文标题】Swift:OHHTTPStubs 的测试实现显示错误【英文标题】:Swift: Test implementation of OHHTTPStubs showing errors 【发布时间】:2018-04-23 21:24:03 【问题描述】:我通过可可豆荚提取 OHHTTPStubs,但我遇到了一些问题,我不知道为什么。这是我的 podFile 的副本
# platform :ios, '11.3'
target 'myApp' do
use_frameworks!
target 'myAppTests' do
inherit! :search_paths
pod 'OHHTTPStubs/Swift'
end
end
在我的测试文件上:
import OHHTTPStubs
@testable import myApp
class myTest: XCTestCase
var client: CryptoCompareClient!
override func setUp()
super.setUp()
OHHTTPStubs.onStubMissing request in
XCTFail("Missing stub for \(request)")
在这一行:
OHHTTPStubs.onStubMissing request in
XCTFail("Missing stub for \(request)")
我收到以下错误:
Type 'OHHTTPStubs' has no member 'onStubMissing'
我也在尝试使用 OHHTTPStubs 从包中加载文件:
let bundle = OHResourceBundle("myFixtures", FixtureLoader.self)!
let path = OHPathForFileInBundle(filename, bundle)!
return OHHTTPStubsResponse(fileAtPath: path, statusCode: 200, headers: nil)
但是我收到了这个错误:
使用未解析的标识符“OHResourceBundle”和 使用未解析的标识符“OHPathForFileInBundle”
我对你们的问题是我做错了什么或者为什么我会收到这个错误?
非常感谢您的帮助。
【问题讨论】:
【参考方案1】:对于任何使用OHHTTPStubsResponse
的人,我可以看到它被重命名为HTTPStubsResponse
。
【讨论】:
【参考方案2】:onStubMissing 不是 OHHTTPStubs 的属性,而是一个函数,所以你只需要在你已有的函数调用中加上 (),像这样
OHHTTPStubs.onStubMissing() request in
XCTFail("Missing stub for \(request)")
它应该可以工作
至于您的第二个问题,OHPathForFileInBundle
没有使用 bundle 参数,您需要从示例中发送资源文件名和 bundle 包含该资源的类:
let stubPath = OHPathForFile("stub.txt", type(of: self))
注意第二个参数是一个类,而不是一个包
【讨论】:
以上是关于Swift:OHHTTPStubs 的测试实现显示错误的主要内容,如果未能解决你的问题,请参考以下文章
未找到“OHHTTPStubs/OHHTTPStubs.h”文件
让 Alamofire 和 OHHTTPStubs 一起工作