함수가 isKindOfClass를 호출하는 메서드에 OCMock 개체 전달. 그러나 유닛 테스트의 경우 반환 된 값은 조롱 된 클래스가 아니라 OCMockObject입니다.OCMock 객체에 대해 isKindOfClass를 호출 할 때 조롱 된 값을 얻는 방법은 무엇입니까?
답변
OCMock 객체를 함수 isKindOfClass를 호출하는 메소드에 전달하려면 부분 모의 객체를 만들어야합니다. 다음 코드는 도움이 될 것입니다. 그것은 나를 위해 일했습니다. FirstViewController
-(void)doSomething:(SecondViewController *)detail
{
if ([detail isKindOfClass:[SecondViewController class]])
{
NSString * returnVal = [detail getName:@"PARAM"];
NSLog(@"returnVal %@",returnVal);
}
}
또 하나 개의 대안은 isKindOfClass 방법을 조롱한다, 그래서 테스트 케이스는 여기
- (void)testMyTest
{
CalculatorViewController* masterVC = [[CalculatorViewController alloc]init];
id master = [OCMockObject niceMockForClass:[SecondViewController class]];
BOOL ret = YES;
[[[master expect] andReturnValue:OCMOCK_VALUE(ret)] isKindOfClass:[SecondViewController class]];
[[master expect] getName:@"PARAM"];
[masterVC doSomething:master];
[master verify];
}
mock/niceMock을 사용하면 객체를 인스턴스화 할 필요가 없다는 이점이 있습니다. 내 경우에는 그 객체를 만드는 것이 어렵습니다. – Giuseppe
확인. 하나의 대안은 isKindOfClass 메소드를 조롱하는 것입니다. 이 같은 id master = [OCMockObject niceMockForClass : [SecondViewController class]]; BOOL ret = YES; // 값을 변경할 수 있습니다. [[[master expect] andReturnValue : OCMOCK_VALUE (ret)] isKindOfClass : [SecondViewController class]]; –
내가하는 일은 niceMock을 사용하고 "class"메서드를 스터핑하여 조롱 된 클래스를 반환하는 것입니다. kindOfClass에 대해 YES를 반환하는 것이 더 안정적입니다. 이것이 왜 OCMock의 기본 동작이 아닌지는 분명하지 않습니다. – Giuseppe
될 것이다 내부
-(void)testMyTest
{
FirstViewController* masterVC = [[FirstViewController alloc]init];
SecondViewController *second = [[SecondViewController alloc] init];
id master = [OCMockObject partialMockForObject:second];
[[master expect] getName:@"PARAM"];
[masterVC doSomething:master];
[master verify];
[masterVC release];
[second release];
}
해봐요 방법을 작성하는 방법을 정확히 설명하는 전체 기사입니다 메서드 (기본적으로 존재하지 않음) 및 사용 방법 : http://blog.carbonfive.com/2009/02/17/custom-constraints-for-ocmock/
- 1. OCMock : 조롱 프로토콜은
- 2. PHPUnit 조롱 된 메소드의 REAL 반환 값을 얻는 방법은 무엇입니까?
- 3. Xamarin.iOS에서 IsKindOfClass를 테스트하는 방법은 무엇입니까?
- 4. __iter __() 메소드에 대한 조롱 된 호출 호출
- 5. 조롱 된 클래스의 메소드를 호출 할 때 NullPointerException이 발생했습니다.
- 6. 각각 문자열 객체에 대해 호출
- 7. 이벤트가 조롱 된 객체에 의해 발생했는지 확인
- 8. 조롱 된 함수의 반환 값을 어떻게 설정합니까?
- 9. GetCallbackChannel()을 호출 할 때 인스턴스를 하나만 얻는 방법은 무엇입니까?
- 10. List 유형의 속성을 사용하여 객체에 대한 호출 조롱
- 11. pimcore 객체에 할당 된 태그를 얻는 방법은 무엇입니까?
- 12. SimpleXML HTML 호출 조롱
- 13. 조롱 된 JSONObject가 추가 된 값을 검색 할 수 없음
- 14. UITableViewCell을 조롱하고 isKindOfClass를 사용합니다.
- 15. 조롱 된 함수 호출 횟수를 제한 할 수 있습니까?
- 16. 조롱 된 개체의 메서드가 작동합니까?
- 17. 반복되는 값을 합산 할 때 뚜렷한 합계를 얻는 방법은 무엇입니까?
- 18. 엔티티를 업데이트 할 때 원래 값을 얻는 방법은 무엇입니까?
- 19. spock의 null 객체에 대해 leftshift() 메서드를 호출 할 수 없습니다.
- 20. 조롱 된 클래스의 부모 호출 함수
- 21. 조롱 된 객체의 메소드가 호출 될 때 무언가를하십시오.
- 22. 동적 객체에 대해 InvalidCastException을 수정하는 방법은 무엇입니까?
- 23. 조롱 주문 된 조롱
- 24. TypeError : 'module'객체가 파이썬 객체에 대해 호출 할 수 없습니다.
- 25. 호출 된 Activity에서 "호출"Activity 인스턴스를 얻는 방법은 무엇입니까?
- 26. 조롱 된 객체를 초기화하는 방법은 무엇입니까?
- 27. OCMock
- 28. 동일한 메소드에 여러 호출을 조롱 할 때 호출 순서 및 매개 변수를 어설 션하는 방법은 무엇입니까?
- 29. Javascript에서 Objective-C 함수를 호출 할 때 반환 값을 얻는 방법은 무엇입니까?
- 30. 반환 값을 조롱
OCMockObject가 해당 프레임 워크의 기본 클래스 인 것으로 나타납니다. + (id) mockForClass : Class를 호출하고 생성 된 객체가 왜 조롱 된 클래스로보고되지 않는지 궁금하십니까? – JiuJitsuCoder
이 문제가 계속되는 경우 유스 케이스를 제공 할 수 있습니까? 너 뭐하려고? 일부 코드는 분석에 도움이됩니다. –
매개 변수의 클래스에 따라 객체를 만드는 모든 팩토리 클래스에 유용 할 수 있습니다. 제 경우에는 이러한 공장을 테스트하기 위해 모의 대신 실제 객체를 만들어야합니다. – Giuseppe