Я применил пример от Mocking Network Requests With OHHTTPStubs. Unfotunately я столкнулся EXC_BAD_ACCESS исключение при совпадении мой результат в строке:Почему kiwi matcher вызывает исключение при сопоставлении?
[[expectFutureValue(origin) shouldEventuallyBeforeTimingOutAfter(3.0)] equal:@"111.222.333.444"];
ли кто-нибудь сталкивался с такой проблемой? Что может быть возможным решением?
Вот полный код:
#import "Kiwi.h"
#import "AFNetworking.h"
#import "OHHTTPStubs.h"
#import "OHHTTPStubsResponse.h"
SPEC_BEGIN(NetworkTest)
describe(@"The call to the external service", ^{
beforeEach(^{
[OHHTTPStubs addRequestHandler:^OHHTTPStubsResponse*(NSURLRequest *request, BOOL onlyCheck){
return [OHHTTPStubsResponse responseWithFile:@"test.json" contentType:@"text/json" responseTime:1.0];
}];
);
it(@"should return an IP address", ^{
__block NSString *origin;
NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://httpbin.org/ip"]];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
origin = [JSON valueForKeyPath:@"origin"];
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
// no action
}];
[operation start];
[[expectFutureValue(origin) shouldEventuallyBeforeTimingOutAfter(3.0)] equal:@"111.222.333.444"];
});
});
SPEC_END
Как это Объявлена и назначена переменная 'origin'? –
Я только что добавил полный код к вопросу –
Это NSString *. Я также пробовал его как (id), но с тем же результатом. –