OCMock을 처음 사용하기 때문에 간단한 것을 간과 한 것일 수도 있지만 문제는 내가 만든 모의 메서드에서 스텁 메서드을 사용할 수 없다는 것입니다.메서드 "클래스"를 OCMock으로 스터 빙
// Unit Test
id mock = [OCMockObject mockForClass:[MySubClass class]];
[[[mock stub] andReturn:[MySubClass class]] class];
...
[someObject someMethodWithParam:mock];
...
여기 someMethodWithParam:
내 구현의 : 여기에 내 테스트의 일부 설정 해요 방법
// Implementation
- (void)someMethodWithParam:(MySuperClass *)param {
[[param class] someClassMethod];
}
문제가를 그 [param class]
반환하는 대신 MySubClass
의 OCClassMockObject
. someClassMethod
을 호출하면 "클래스에 보낼 수없는 선택기를 보냈습니다"오류가 발생합니다. 부분적인 모의를 사용하려고 시도했지만 도움이되지 않았습니다.
편집 : 당신의 -someMethodWithParam:
에서
// Unit Test
id mock = [OCMockObject mockForClass:[MySubClass class]];
[[[mock stub] andReturn:[MySubClass class]] class];
XCTAssertEqual([mock class], [MySubClass class], @"The mock's class should be MySubClass");
OCMockObject + mockForClass : 테스트가 필요하지 않은 경우 개체 인스턴스를 저장하기 위해 여기에서도 작동합니다. – ImHuntingWabbits