내가 개발 단계에서 현재 API를 테스트하는 단위 테스트를 쓰고 있어요
시나리오에서 $이를 통해 참조. 나는 모의 컨테이너 클래스 (데코레이터 패턴)를 가지고 있는데, 실제 객체에 대한 호출 대신 실행되는 mock 배열을 포함하고있다.가로 채기 함수 호출은 단위 테스트
이러한 모의 용기는 테스트 실행 중에 DI 컨테이너에 놓여지고 호출은 모델/컨트롤러 대신 컨테이너에 부딪칩니다. 대부분의 경우 컨트롤러 기능을 사용할 수 있지만 가끔씩 조롱하려고합니다. 모의 컨테이너는 __call
을 통해 액세스 할 수없는 함수 호출을 포착하고 할당 된 모의 데이터를 반환하거나 내부 객체를 치는 방식으로 작동합니다.
문제점
이의 사용 케이스에 잘 작동 : c['Controller_Name']
으로
$this->c['Controller_Name']->functionHere()
우리의 모의 컨테이너의 인스턴스이지만,이 방법의 문제는 자신을 참조하는 컨트롤러에서 온다 functionHere
을 조롱해야 할 때 $this->functionHere()
을 통해 전달되지만, 모의 컨테이너가 아닌 컨트롤러의 인스턴스 인 $this
에서 호출이 발생합니다.
$this->functionHere()
을 잡아 구체적인 얘기를 하드 셋업을 모른 채
$this->c['Controller_Name']->functionHere()