2
IO :: Socket :: INET을 사용하는 Perl 모듈에 대한 단위 테스트를 작성 중이므로 IO를 조롱하고 싶습니다. : 소켓 : :: Test :: MockObject를 사용하는 INET 모듈.IO :: Socket :: INET을 Test :: MockObject로 조롱하는 법
SP는 지금까지 내가
$INC{'IO/Socket/INET.pm'} = 1;
my $inet = Test::MockObject->new();
$inet->fake_module('IO::Socket::INET', new => sub { $inet });
같은하지만 테스트 해요 모듈의 코드를
my $server = IO::Socket::INET->new(...);
my $data = <$server>
과 같은 코드를 가지고 있는데이 테스트를 실행할 때 나는 "와 같은 오류를하지 얻을 각도 연산자 "를 실행하려고 할 때"GLOB 참조 "가됩니다.
모의 개체 참조를 파일 핸들처럼 보이게하려면이 코드를 실행하려면 무엇을 추가해야합니까?
덕분에, 지금은 테스트 :: 모의 객체와 함께 할 수있는 방법을 발견했습니다. MockObject 생성자에 전역 참조를 전달할 수 있으므로 open (FH, "<", \ $ scalar)을 사용하여 파일 핸들을 만든 다음 \\ * FH를 MockObject-> new()에 전달합니다. 조롱 된 객체는 파일 핸들처럼 동작합니다. –