OCMock部分模拟拆除问题

时间:2016-05-02 17:08:42

标签: ios unit-testing ocmock

我做了一个局部模拟,一个测试按预期运行,但是对于第二个测试,它调用setUp并且背靠背拆卸而不调用实际测试。

- (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 个答案:

答案 0 :(得分:1)

可达性是一个免费的桥接类,所以部分模拟不适合你的情况。 来自http://ocmock.org/features/中的ocmock文档:

  

请注意,目前无法为免费桥接类的实例创建部分模拟,例如的NSString。