我通过可可豆荚拉了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'
还尝试使用OHHTTPSTUB从捆绑包加载文件:
let bundle = OHResourceBundle("myFixtures", FixtureLoader.self)!
let path = OHPathForFileInBundle(filename, bundle)!
return OHHTTPStubsResponse(fileAtPath: path, statusCode: 200, headers: nil)
但是我遇到了这个错误:
使用未解决的标识符" ohresourcebundle"和使用未解决的标识符" Ohpathforfileinbundle"
我对你们的问题是我做错了什么或为什么我遇到了这个错误?
我将非常感谢您的帮助。
对于任何使用OHHTTPStubsResponse
的人,我可以看到它被更名为HTTPStubsResponse
。
onStubMissing不是ohhttpstubs的属性,而是一个函数,因此您只需要将((添加到您已经拥有的函数调用中,例如这个
OHHTTPStubs.onStubMissing() { request in
XCTFail("Missing stub for (request)")
}
它应该起作用
至于您的第二个问题,OHPathForFileInBundle
不使用捆绑参数,您需要从示例中发送资源文件名和捆绑包包含该资源的类:
let stubPath = OHPathForFile("stub.txt", type(of: self))
注意第二个参数是类,而不是捆绑