SWIFT:OHHTTPSTUB的测试实现显示错误



我通过可可豆荚拉了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))

注意第二个参数是类,而不是捆绑

最新更新