2016-05-02 1 views
1

私は部分模擬を行いましたが、1つのテストは期待通りに実行されますが、2回目のテストでは実際のテストを呼び出さずにsetUpとティアダウンを呼び出します。OCMock部分的モック引き裂き問題

- (void)setUp { 
    [super setUp]; 
    _reachability = [Reachability reachabilityForInternetConnection]; 
    _reachabilityMock = [OCMockObject partialMockForObject:_reachability]; 
    [[[_reachabilityMock expect] andReturn:_reachabilityMock] 
     reachabilityForInternetConnection]; 
} 

- (void)tearDown { 
    [_reachabilityMock stopMocking]; 
    _reachability = nil; 
    _reachabilityMock = nil; 
    [super tearDown]; 
} 

#pragma mark - Tests 

- (void)testWifiReachability { 
    [[[self.reachabilityMock stub] andReturnValue:@(ReachableViaWiFi)] 
     currentReachabilityStatus]; 
    XCTAssertTrue([Reachability pckHasWifiConnection]); 
} 

- (void)testNoReachability { 
    [[[self.reachabilityMock stub] andReturnValue:@(NotReachable)] 
     currentReachabilityStatus]; 
    XCTAssertFalse([Reachability pckHasWifiConnection]); 
} 

私はocmockを初めて利用していますか?ありがとう!

答えて

1

到達可能なのはフリーダイヤルですので、部分的なモックはあなたのケースでは機能しません。 http://ocmock.org/features/でocmockのドキュメントから:

現在、部分的モックはフリーダイヤルブリッジ・クラスのインスタンスのために作成することはできません、例えばNSString。

関連する問題