예외: '클로저' 직렬화
단위 테스트 시나리오에서 _initMailer 내부 클로저와 관련된 테스트 실행 중에 예외가 발생했습니다. 방법. 이 예외는 PHP 테스트 환경 내에서 허용되지 않는 클로저 직렬화와 관련이 있습니다.
구체적으로 클로저는 Zend_Mail_Transport_File 인스턴스 내에서 콜백 함수로 사용됩니다:
$callback = function() { return 'ZendMail_' . microtime(true) .'.tmp'; };
해결책 1: 일반 함수 사용
한 가지 해결책은 클로저를 일반 함수로 바꾸는 것입니다.
function emailCallback() { return 'ZendMail_' . microtime(true) . '.tmp'; } $callback = "emailCallback" ;
해결책 2: 배열을 사용한 간접 메서드 호출 변수
또는 배열 변수를 통해 간접 메서드 호출을 사용할 수 있습니다.
$callback = array($this,"aMethodInYourClass");
이는 콜백이 호출될 때 aMethodInYourClass 메서드가 호출된다는 의미입니다.
위 내용은 단위 테스트 시나리오에서 클로저 직렬화를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!