-
Notifications
You must be signed in to change notification settings - Fork 603
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ability to programmatically trigger the finish of the request #53
Comments
That's a good idea, but how would you imagine the API for that? For example if you write: id<OHHTTPStubsDescriptor> myStub =
[OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest *request) {
return YES;
} withStubResponse:^OHHTTPStubsResponse*(NSURLRequest *request) {
NSData* stubData = [@"Hello World!" dataUsingEncoding:NSUTF8StringEncoding];
return [OHHTTPStubsResponse responseWithData:stubData statusCode:200 headers:nil];
}]; How would you then trigger the response of a specific/given request, even as this stubs every request ( Another solution would be to add this kind of API on the __block dispatch_block_t sendResponseBlock = nil;
[OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest *request) {
return YES;
} withStubResponse:^OHHTTPStubsResponse*(NSURLRequest *request) {
NSData* stubData = [@"Hello World!" dataUsingEncoding:NSUTF8StringEncoding];
OHHTTPStubsResponse stubResponse = [OHHTTPStubsResponse responseWithData:stubData statusCode:200 headers:nil];
sendResponseBlock = [stubResponse responseTrigger];
return stubResponse:
}
// some code that send a network request, that will be catched by OHHTTPStubs
// then when you want to trigger the response:
if (sendResponseBlock) sendResponseBlock(); But still that won't solve any problem, as:
The problem being that Cocoa's URL Loading System has a dedicated thread that manage network requests to send them and manage the response, and is the one responsive for calling So I'm afraid we don't have much control over this, as all this process is asynchronous by nature. But if you have any suggestion on how to implement it and how would the |
I have to be honest I came up with a solutions similar to the second one you proposed and I stopped because of the problems you listed. I'm afraid that at the moment I do not have a good idea on how to implement that, an this is also the reason why I've been a little generic in my first comment: I was trying to start sort of brainstorming. |
Agreed, i'll keep it open and label it accordingly. |
Closing this as it has been open for too long without any new propositions. Feel free to reopen if any idea to propose this comes to mind but I think this is conceptually impossible. |
Right now the only thing that is possible to do to control when a response is returned is to specify the
responseTime:
.This is not ideal especially if your writing you test because you need to rely of timing instead of actual method call.
The text was updated successfully, but these errors were encountered: