모든보기 도우미의 상태를 재설정하는 방법이 있습니까? 예를 들어 headScript()
으로 추가 한 모든 스크립트를 제거 할 수 있습니까? 한 단위 테스트에서 추가 된 스크립트와 메타 태그는 각 테스트마다 새 컨트롤러와 뷰를 만들지 만 다음 단위 테스트에서 볼 수 있습니다. 이것은 거짓 긍정과 부정을 일으키는 것입니다.Zend Framework의 모든보기 도우미 재설정
답변
마르신의 코멘트는 우리의 테스트에서 문제의 근본 원인에 나를 인도 : 그래서, 이론적으로, 당신은 빈 배열 (완전히 테스트되지 않은)를 전달하여 모든 값을 지우려면 exchangeArray 방법을 사용할 수있을 것 프레임 워크는 레지스트리의 스냅 샷을 사용하는 코드가 실행되기 전에 자리 표시 자 레지스트리가 Zend 레지스트리에 추가되는 것입니다. 따라서 모든 새 레지스트리 개체를 제거하는 코드가 실행되면 더 이상 자리 표시 자 레지스트리가 제거되지 않습니다.
$registry = Zend_Registry::getInstance();
unset($registry['Zend_View_Helper_Placeholder_Registry']);
니스, 훨씬 나아졌습니다! – typeoneerror
이것은 _ 전체 _ 자리 표시자를 날려 버릴 것입니다. 약간의 촬영이 먼저, 나중에 질문, IMO. –
@JasonTFeatheringham - 바로 그 점입니다. 각 단위 테스트는 이전에 실행 된 테스트의 영향을받지 않고 완전히 격리되어 실행되어야합니다. –
해당 컨테이너의 추상 클래스 (Zend_View_Helper_Placeholder_Container_Abstract
)를 살펴보면, ArrayObject으로 확장 된 것을 알 수 있습니다. set
언제든지 Array 값을 설정 한 값을 래핑하는 배열로 바꿉니다. append
일 때 이전 값을 가져오고 새 값을 배열로 이동하지 않습니다.
$this->view->headScript()->exchangeArray(array());
모든 자리 표시 자 기반보기 도우미에 대해 이렇게하는 것이 최후의 수단 이었지만 포인터에 감사드립니다. 그건 분명히 트릭을 할 것입니다. –
- 1. Zend Framework의 다중 구성
- 2. Zend Framework의 DisplayGroup 데코레이터
- 3. Zend Framework의 url 접미사
- 4. Zend Framework의 Ajax 문제
- 5. Zend 국제화보기 도우미
- 6. Zend Framework 도우미 경로
- 7. Zend Framework의 "Hierarchical"행 집합?
- 8. Zend Framework의 렌더링 레이아웃 부분
- 9. Zend Framework의 ASP.NET MVC 모듈
- 10. Zend Framework의 FlashMessenger 메시지 분류
- 11. Zend Framework의 모듈 사용 사례
- 12. Zend Framework의 사용자 정의 클래스
- 13. Zend Framework의 모델 로딩 문제
- 14. Zend Framework의 부트 스트랩 반복
- 15. Javascript가 Zend Framework의 Dojo를 닫습니다.
- 16. Zend Framework 도우미 경로 문제
- 17. Zend Framework의 Doctrine 프로필 작성 방법
- 18. Contollers 및 Views - Zend Framework의 MVC
- 19. Zend Framework의 모듈 별 데이터베이스 설정
- 20. Zend Framework의 이전 버전을 설치 하시겠습니까?
- 21. Zend Framework의 컨트롤러 및 레이아웃에서의 데이터 흐름
- 22. ZEND FRAMEWORK의 클래스 라이브러리를 사용하는 방법은 무엇입니까?
- 23. Zend Framework의 httpClient에있는 쿠키와 관련된 문제
- 24. Zend Framework의 데이터베이스 트랜잭션 : 격리되어 있습니까?
- 25. PHP/Zend Framework의 국가 대 시간
- 26. 은 모든보기
- 27. Telerik에서 모든보기 선택 RadGrid
- 28. popToRootViewControllerAllimated 및 dealloc 모든보기
- 29. Zend Framework의 테이블, 행 집합 및 행 간의 관계?
- 30. Zend Framework의 요소, 하위 양식 및 belongsTo 사용
왜 그냥 phpunit을 (내가 개봉 된 ZF와 phpunit을을 isng 가정)의 설치/해체 방법을 사용하십시오
이 사용하는 모든 자리 표시 자 기반의 뷰 헬퍼의 상태를 재설정하려면? – prodigitalsonZend_Registry :: _ unsetInstance();를 사용하여 teardown 메소드에서 Zend_Registry를 지울 수 있습니다. – Marcin
@prodigitalson - 예, 우리는 PHPUnit을 사용하고 있습니다. 그러나 문제는 뷰 헬퍼를 지우려면'tearDown()'에 무엇을 넣어야할지 모르겠습니다. –