2013-12-13 3 views
3

이 코드의 잘못된 점은 무엇입니까? 클래스 메소드를 만들기 위해 노력하는 것은 @ NO를 반환하지만 @YES를 반환합니다 (NSLog는 "1"을 출력 함).OCMock이 작동하지 않는 모의 클래스 메서드

// Make the test think you don't have any internet 
id mockFunctions = [OCMockObject mockForClass:[Functions class]]; 
[[[mockFunctions stub] andReturnValue:@NO] connectionAvailable]; 


NSLog(@"derp: %hhd", [Functions connectionAvailable]); 

답변

2

나는 조롱 당하고있는 클래스의 복사본이 두 개인 있습니다. .m 파일을 테스트 대상에 포함시키지 않으면 모든 것이 잘 동작합니다.

+0

아, 나는 비슷한 일을 과거에 해왔다. –

1

andReturnValue의 구조는 수행하는 것보다 조금 더 복잡합니다.

[[[mockFunctions stub] andReturnValue:OCMOCK_VALUE((BOOL){NO})] connectionAvailable]; 

는 시도를 부여하고 작동되는지 확인합니다.

+0

코드에서이 오류가 발생했음을 알 수 있습니다. 그러나 NSLog는 여전히 1을 제공하고 있으며 중단 점은 여전히 ​​해당 클래스 메서드를 호출하고 있음을 나타냅니다. –