Entity
클래스에 사용자 지정 데이터베이스 논리가 없으면 (단, 가지고 있지 않아야 함) 단위 테스트 및 기능 테스트를 만들 필요가 없습니다. Doctrine이 테스트되었으므로 persist
/flush
이 올바르게 작동하고 이러한 테스트를 복제 할 필요가 없습니다.
그러나 예를 들어 쿼리가 올바르게 작동하는 경우 사용자 지정 데이터베이스 논리 (및 추가 추상화)를 넣는 곳인 XYManager
클래스 (여기에서 XY
은 엔터티의 이름 임)를 개인적으로 테스트해야하는 경우 그것. 내 접근 방식은 FOSUserBundle에서 영감을 얻었습니다 (UserManager 참조). 내 돌출 Entity
과 EntityManger
클래스 모두에서
은 번들의 Entity
폴더에 이러한 클래스에 대한 테스트는 Tests/Entity
폴더에 있습니다. 기능 테스트는 단위 테스트보다 훨씬 오래 걸리기 때문에 PHPUnit의 @group
주석을 사용하여 기능 테스트를 구분합니다. 데이터베이스가 필요하지 않은 모든 테스트에 @group unit
을 추가하면 데이터베이스가 필요하거나 WebTestCase
인 모든 테스트에 WebTestCase
및 @group functional
이 아닙니다. 난 단지 단위 테스트를 실행하려면
나는
phpunit -c app/ --group unit`
및
phpunit -c app/ --group functional
만 기능 테스트를 실행 할 수 있습니다.
phpunit -c app/
은 기능 테스트와 단위 테스트를 모두 실행합니다.
답장을위한 Thx – EAdel