2012-02-23 4 views
3

CGI 스타일의 펄 스크립트는이 스타일에서 테스트하기 어려운 :정적 CGI 스타일의 perl 스크립트 (xxx.pl)를 동적 PSGI 응용 프로그램으로 전환하는 방법은 무엇입니까?

def test_it_says_hello_to_a_person 
    get '/home.pl', :name => 'Simon' 
    assert last_response.body.include?('Simon') 
end 

(참고 : 코드 Rack::Test를 사용하여, 루비에있다).

하지만이 PSGI 응용 프로그램 에 정적 파일을 설정할 수있는 경우 (A 코드 참조, 매개 변수로 $env 동의 [$status, $header, $body]를 반환)은, 일이 쉽게 될 것이며, Plack::Test는 나머지를 할 것입니다.

저는 PSGI 사양을 읽고 있습니다. 일반적으로이 경로를 볼 수 있습니다. 그러나 나는 아직도 이것에 존재 바퀴가 있는지 알고 싶다?

또한 Plack::Test의 인터페이스는 Rack::Test처럼 훌륭하지 않습니까?

답변

7

Plack::App::WrapCGI을보고 싶다고 생각합니다. 인수로 Perl 스크립트를 제공하면 ModPerl::Registry과 유사한 기술을 사용하여 CGI 스크립트를 PSGI 응용 프로그램으로 컴파일합니다. 그리고 그 방법을 알지 못하더라도 PSGI 환경에서 완벽한 CGI 환경을 에뮬레이션 할 수 있습니다. 즉, 선의의 CGI 스크립트 (다른 ​​언어로 작성된 스크립트도 포함)를 포크하고 실행할 수 있습니다. Plack :: Test를 포함하여 Plack 처리기의 어떤 종류든지의 밑에 그것을 달리십시오.