我通过可可豆荚拉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从bundle加载文件:
let bundle = OHResourceBundle("myFixtures", FixtureLoader.self)!
let path = OHPathForFileInBundle(filename, bundle)!
return OHHTTPStubsResponse(fileAtPath: path, statusCode: 200, headers: nil)
但我收到了这个错误:
使用未解析的标识符'OHResourceBundle'和 使用未解析的标识符'OHPathForFileInBundle'
我向你们提出的问题是我做错了或为什么我会收到这些错误?
我真的很感谢你的帮助。
答案 0 :(得分:6)
对于任何使用OHHTTPStubsResponse
的人,我都能看到它被重命名为HTTPStubsResponse
。
答案 1 :(得分:1)
onStubMissing不是OHHTTPStubs的属性,而是一个函数,因此您只需要在已经拥有的函数调用中添加(),就像这样
OHHTTPStubs.onStubMissing() { request in
XCTFail("Missing stub for \(request)")
}
它应该可以工作
对于第二个问题,OHPathForFileInBundle
不带bundle参数,您需要从示例中发送资源文件名和其捆绑包中包含该资源的类:
let stubPath = OHPathForFile("stub.txt", type(of: self))
请注意,第二个参数是类,而不是包