2011-01-27 4 views
1

우리가 개발해온 방식대로, 많은 PHP 파일은 내용을 출력 할 것이라는 예상에 포함되어 있습니다. 어떤 메소드도 호출되지 않습니다. 제 질문은 PHPUnit으로 이것을 테스트하는 "올바른"방법은 무엇입니까? requiresetUp에 넣어야 실행될 때까지 기다리거나 나쁜 mojo로 간주됩니까?PHP 테스트 출력 만 포함 된 파일 포함

+0

사용할 수 없습니까?> http://www.phpunit.de/manual/current/en/testcase-extensions.html#testcase-extensions.output? – Alfred

+0

@ Alfred 나는 이것을 사용하고있다. 제 질문은'require '를 갖는 적절한 장소에 관한 것입니다. –

+0

그래, 지금은 그렇게해야 해. require_once를 사용하면 더 좋습니다. 그러나 출력 버퍼링은 미래에 테스트를 작성하는 방법이 아니라는 것을 지적하고 싶습니다. (하지만 이미 이해하고 있다고 생각합니다.) – Alfred

답변

2

테스트 할 수있는 유일한 방법입니다. 난 당신이 기대에 대해 확인할 수 있도록 생산 된 콘텐츠를 캡처하는 output buffering을 사용하려는 가정합니다.

PHP를 가장 일반적인 방법으로 PHPUnit에서 테스트하는 데 적합한 호출자에게 결과를 반환하는 자체 포함 클래스/함수에서 가능한 한 많은 작업을 수행 할 수 있도록 최선의 방법은 코드를 리팩터링하는 것입니다.

+0

결국 리팩터러가 목표입니다. 그러나 우리는 아직 그 근처에 없습니다. –

+0

나는 이와 같은 코드 작업을 해왔다. :-) –

2

응용 프로그램이 웹 응용 프로그램 (예 : 브라우저가 필요한 내용을 출력) 인 경우 PHPUnit은 웹 응용 프로그램 테스트 시스템 인 Selenium과 통합되어 있습니다. Firefox 플러그인이 있기 때문에 실제로 매우 유용합니다.

PHPUnit Manual에서 PHPUnit 및 Selenium에 대한 자세한 내용을 볼 수 있습니다.

템플릿 (예 : 포함 파일)이 명령 행 스크립트에서 사용되는 경우 output_buffering 및 정규식 어설 션 또는 일반 어설 션 (예 : assertRegExp, assertEquals)을 사용하십시오.