我正在尝试测试用OHHTTPStubs捕获的请求体,但它看起来似乎有问题,因为它
request.httpBody
是nil
.
我发现了有关此问题的此信息测试存根中的请求正文.但我在iOS开发方面很新,不知道如何OHHTTPStubs_HTTPBody
在Swift中访问.我怎样才能做到这一点?
我正在尝试在我的XCTest类中使用OHHTTPStubs,
这是我OHTTPStubs
在测试文件中配置的方式.
//
// Tests Configuration
//
- (void)setUp
{
[super setUp];
_bundle = [NSBundle bundleForClass:[self class]];
[self configureHTTPStubs];
[self installHTTPStubs];
}
- (void)configureHTTPStubs
{
[OHHTTPStubs onStubActivation:^(NSURLRequest *request, id<OHHTTPStubsDescriptor> stub) {
NSLog(@"[OHHTTPStubs] Request to %@ has been stubbed with %@", request.URL, stub.name);
}];
}
- (void)installHTTPStubs
{
HIAPIRequests *requester = [[HIAPIOperator sharedOperator] requester];
[OHHTTPStubs setEnabled:YES forSessionConfiguration:requester.session.configuration];
[OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest *request) {
return [request.URL.path isEqualToString:@"/image_upload"];
} withStubResponse:^OHHTTPStubsResponse *(NSURLRequest *request) {
return [[OHHTTPStubsResponse responseWithFileAtPath:OHPathForFileInBundle(@"image_upload_ws_response.json", nil)
statusCode:201
headers:@{@"Content-Type":@"text/json"}] responseTime:OHHTTPStubsDownloadSpeed3G];
}].name = @"Image …
Run Code Online (Sandbox Code Playgroud) 有没有办法为用 Swift 编写的 UITests 存根网络请求?
我已经安装了 OHHTTPStubs pod,但无法通过使用它的方法来存根我的网络请求,这是因为 UITest 目标和应用程序目标在不同的线程中执行。
我将不胜感激任何建议。
我通过可可豆提取 OHHTTPStubs,但我遇到了一些我无法弄清楚原因的问题。这是我的 podFile 的副本
# platform :ios, '11.3'
target 'myApp' do
use_frameworks!
target 'myAppTests' do
inherit! :search_paths
pod 'OHHTTPStubs/Swift'
end
end
Run Code Online (Sandbox Code Playgroud)
在我的测试文件中:
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)")
}
}
Run Code Online (Sandbox Code Playgroud)
在这一行:
OHHTTPStubs.onStubMissing { request in
XCTFail("Missing stub for \(request)")
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Type 'OHHTTPStubs' has no member 'onStubMissing'
Run Code Online (Sandbox Code Playgroud)
此外,我正在尝试使用 OHHTTPStubs 从包中加载文件:
let bundle = OHResourceBundle("myFixtures", FixtureLoader.self)!
let path = OHPathForFileInBundle(filename, bundle)!
return …
Run Code Online (Sandbox Code Playgroud) ohhttpstubs ×4
ios ×3
ios7 ×1
iphone ×1
mocking ×1
stubbing ×1
swift ×1
swift4 ×1
ui-testing ×1
xcode9 ×1