2010-01-26 10 views
4

PHP에서 의존성을 처리 할 때 전역 변수 대신 종속성 주입을 사용하는 것이 좋으므로 테스트하기가 쉽기 때문에 웹에서 여러 번 읽었습니다. 누군가 시험 할 수있는 방법을 쉽게 설명 할 수 있습니까? 그리고 내가 시험을하기 위해 무엇을 사용할 것인가?PHP 클래스/객체는 어떻게 테스트합니까?

답변

3

단위 테스트에 대해 배우고 PHP에서 사용할 수있는 몇 가지 도구를 살펴 보시기 바랍니다. 나는 PHPUnit을 추천 할 것이지만, 어떤 사람들이 선호하는 것을 알고있는 SimpleTest도 있습니다.

변경 가능한 데이터의 범위를 최소화하는 것은 일반적으로 좋은 아이디어입니다. 테스트가 진행되는 동안 변수가 다른 작업의 부작용으로 변경되었다는 것을 염려하지 않고 작고 원자 단위의 기능을 수행하는 단위 테스트를 작성할 수 있습니다. 객체의 상태가 a, b 또는 c인지 테스트하려는 경우 정확히 어떤 작업이 상태에 영향을 줄 수 있는지 알기 때문에 테스트해야하는 항목을 알 수 있습니다. 주 (state)가 글로벌 인 경우 응용 프로그램의 다른 작업으로 인해 영향을 줄 수있는 정보가 없으므로 스파게티 더미를 유지하기가 어려울 수 있습니다.

조슈아 블로흐 (Joshua Bloch)는 Effective Java, Item 29에 친절하게 설명합니다. 나는 그가 PHP를 사용하지 않더라도 컨셉은 동일하다는 것을 읽을 것을 권하는 바이다.

단위 테스트의 경우 The Pragmatic Programmers가 게시 한 Pragmatic Unit Testing을 권하고 싶습니다. Java/JUnit과 C#/NUnit 용 버전이 있지만 개념은 완전히 PHP에 적용 가능합니다. 특히 xUnit 패턴을 따르는 PHPUnit을 사용하는 경우 더욱 그렇습니다.

관련 문제