iOS 프로젝트에서 단위 테스트를 수행하기 위해 OCMock 3을 사용하고 있습니다.OCMock 3의 단위 테스트에서 함수의 반환 값을 확인하는 방법
OCMock은 iOS 용 위대한 단위 테스트 라이브러리라고하지만 위에 링크 된 OCMock 문서는 함수의 반환 값을 확인하는 방법을 명확하게 말하지 않았으며 항상 함수 반환을 스텁하는 방법을 알려줍니다 & . 하지만 그 함수 반환을 스텁 싶지 않아, 실제 반환 값을 확인해야합니다.
예를 들어, I는 단위 테스트에 내 School
클래스의 기능을 원하는 :
@implementation School
...
- (void) checkStudents {
BOOL isOnVacation = [[Coordinator sharedInstance] checkCalendar];
if (!isOnVacation) {
takeLecture();
}
}
@end
내 테스트 케이스 : 나는 [[Coordinator sharedInstance] checkCalendar]
의 반환 값을 스텁 싶지 않아
- (void) testCheckStudents {
// create a partially mocked 'Coordinator' instance
id coordinatorMock = [OCMockObject partialMockForObject:[Cooridnator sharedInstance]];
// run the method under test
[schoolToTest checkStudents];
// I want to check not only '[[Coordinator sharedInstance] checkCalendar]' is invoked, but also check its return value is YES. How to check this in OCMock?
OCMVerify([coordinatorMock checkCalendar]);
}
실제 구현을 실행합니다.
나는 [[Coordinator sharedInstance] checkCalendar]
이 호출 될뿐만 아니라 반환 값이 YES
인지 확인하고 싶습니다. OCMock에서이를 확인하는 방법?
이 정답이다. checkStudents에 대한 하나의 테스트를 작성해야한다. 네가 가진거야. 'checkCalendar'에 대한 별도의 테스트를 작성해야하며,이 테스트에서는 아마도 OCMock이 전혀 필요하지 않을 것입니다. 메소드를 호출하고 리턴 값에 대한 어설 션을 작성하면됩니다. –