찾다

 >  Q&A  >  본문

PHP 단위에서 Mage::getSingleton('checkout/cart')을 조롱하는 방법은 무엇입니까?

이 foo() 메서드가 있고 Magento에서 이 메서드 testFoo()에 대한 단위 테스트 사례를 추가해야 합니다. 그러나 Mage::getSingleton('checkout/cart')은 시뮬레이션할 수 없습니다.

소스 방법

으아아아

테스트 기능

으아아아

php-unit을 실행하면 이런 오류 로그가 나타납니다.

으아아아

Mage::getSingleton('checkout/cart')을 시뮬레이션하는 방법에 대한 해결책이 필요합니다.

Note: 레거시 코드이기 때문에 메인 메소드를 변경할 수 없습니다. 단위 테스트 케이스만 추가하면 됩니다.

P粉244730625P粉244730625237일 전499

모든 응답(1)나는 대답할 것이다

  • P粉588152636

    P粉5881526362024-04-04 11:05:45

    전역 네임스페이스의 정적 함수이므로 모의Mage::getSingleton('checkout/cart')할 수 없습니다.

    그러나 메타프로그래밍을 사용하여 체크아웃 카드 모의를 주입할 수 있습니다. 그런 다음 해당 위치에서 원래 싱글톤을 복원합니다.

    EComDev Testsuite에서 상속된 기존 Q&A와 비교하세요. 여기에는 PHP Reflection을 사용하여 내부 구조를 처리하는 방법에 대한 더 많은 지침이 있어야 합니다.

    회신하다
    0
  • 취소회신하다