2012-01-12 6 views
1

CodeIgniter의 단위 테스트가 필요합니다. 나는 CIUnit을 시도했으나 v1.7.2에 설치물을 설치하지 않았다.단위 테스트 방법 CodeIgniter 코드

순수 PHPUnit을 시도했지만 액티브 레코드를 상속하는 모델 클래스의 스텁을 만들 수 없어 activerecord를 찾을 수 없다는 오류가 발생했습니다. 분명히 액서버 레코드 도우미를로드하는 컨트롤러가 없습니다.

Codeigniter에서 단위 테스트를 수행 할 수있는 방법이 있습니까? 나는 간단한 테스트 라이브러리에 대해 알고 있지만 phpunit과 비교했을 때 얼마나 좋은가. 통합 테스트를 수행 할 수있는 방법이 있습니까?

+2

짧은 버전 : 당신의 CodeIgniter의 프레임 워크는 컨트롤러로 핵심 구성 요소의 단위 테스트를 방해 할 수 없다. 코드가 핵심 구성 요소 (파생물)에서 확장됨에 따라 코드가 함정에 빠져서 테스트 할 수있는 단위를 구성 할 수 없습니다. – hakre

답변

2

FooStack은 도움이되는 부가 기능입니다. 그것은 조명기에 대한 지시 사항을 포함하며 1.7.2 (이전 버전 인 BTW)와 호환됩니다.

http://www.knollet.com/foostack/

+0

덕분에, 나는 foostack을 시도하고 어떤 장애물을 가지고 테스트 기능을 실행할 수있었습니다. 나는 몇 가지 문제가 남아 있지만. 어떻게하면 $ _POST 데이터를 사용하는 함수를 테스트 할 수 있습니까? 또한 ViewAllTests에 제공된 예제는 복잡해 보입니다. 단일보기를 테스트하는 간단한 방법이 있습니다. – aeonsleo

+1

실제로이 스택을 직접 사용하지는 않기 때문에이 조언을 한알 씩 가져 가라.하지만 네이티브 PHP를 사용하여 테스트에 필요한 $ _POST 배열 값을 설정할 수 있어야한다. –

+0

Dan의 충고가이 작업에 사용됩니다. Foostack에서는 POST 배열을 설정 한 다음 컨트롤러 메소드를 트리거합니다. 내장 CI 포스트 기능은 사용자가 설정 한 POST 배열을 사용합니다. 수많은 모의 개체와 설치/분해의 대시에 던져 넣기 만하면됩니다. – willoller