2014-09-18 8 views
0

네비게이션 컨트롤러를 생성하고이를 메인 윈도우의 루트 뷰 컨트롤러로 설정하고 테스트중인 뷰 컨트롤러를 네비게이션 컨트롤러 내부에 배치하는 테스트 용 매크로가 있습니다.키위를 사용하여 메소드를 언 스토크하는 법

pushViewController:animated:을 호출 할 때마다 애니메이션 매개 변수를 NO으로 변경하고 싶습니다.

어떻게하면됩니까?

stub:withBlock:을 사용하여 시도한 다음 뷰 컨트롤러 (params [0])가 푸시되고 (NO)이 블록에서 pushViewController:animated:을 호출했지만 무한 루프가 발생합니다.

stub:withArguments:도 있지만이 경우에는 여러 곳에서 사용되는 매크로이므로 푸시 된 뷰 컨트롤러에 대한 참조가 없습니다.

내가 생각할 수있는 유일한 방법은 stub:withBlock:을 사용하고 스텁을 제거하고 보통 pushViewController:params[0]:NO을 호출하는 것이지만 스텁을 제거하는 방법을 찾을 수 없습니다.

어떤 도움이 필요합니까?

답변

0

키위 스텁 기능은 실제로 그렇게 할 수 있도록 설계되지 않았습니다. 사이의 API 계약에 대해

  • 만들기 주장 (가짜와 메소드 구현을 대체하여) 시스템의 나머지 부분에서 테스트중인 코드를 격리를

    • :

      두 가지 일들이 것이 것입니다 시스템의 개체

    메서드의 기본 동작을 전역 적으로 변경하려면보다 일반적인 목적의 방법을 모색하는 솔루션이라고 생각합니다. 키위의 스터 빙 기능은 부분적으로 스위 즐링 (swizzling)으로 구현 될 수 있지만 훨씬 더 집중된 도구입니다.