Тесты блокируются при тестировании асинхронного сетевого контента с Nocilla

Я пытаюсь протестировать класс, у которого есть метод, отвечающий асинхронно, который выполняет сетевой вызов, оцепленный Nocilla.

Тесты работают нормально, когда я запускаю тест самостоятельно. Но как только я запускаю весь свой набор тестов, он на некоторое время блокируется и заканчивается:

Thread 1: signal SIGABRT

Вот мой тестовый класс:

@interface SMIMyServiceTests : XCTestCase

@property (strong, nonatomic) SMIMyService *service;

@end


@implementation SMIMyServiceTests

+ (void)setUp {
    [[LSNocilla sharedInstance] start];
}

+ (void)tearDown {
    [[LSNocilla sharedInstance] stop];
}

- (void)setUp {
    [super setUp];

    self.service = [[SMIMyService alloc] init];
}

- (void)tearDown {
    [[LSNocilla sharedInstance] clearStubs];
    self.service = nil;
    [super tearDown];
}

- (void)testFetch {
    stubRequest(@"GET", @"http://mydevserver.192.168.1.15.xip.io/api/data.json").andReturn(200).withBody([MyUtil jsonFromFile:@"json-file" sender:self]);

    XCTestExpectation *expectation = [self expectationWithDescription:@"Fetch"];

    [self.service fetch:^(NSArray *data) {
        XCTAssertTrue(data != nil);
        XCTAssertEqual(data.count, 7);
        [expectation fulfill];
    }];

    [self waitForExpectationsWithTimeout:5.0 handler:nil];
}

@end

Есть идеи, что не так?

0 ответов

Другие вопросы по тегам