2013-05-01 2 views
9

저는 CakePHP 2.3을 사용하고 있으며 테스트 구동 개발 (TDD)을 사용하여 CakePHP 웹 사이트를 구축하는 방법을 제대로 알고 싶습니다. the official documentation on testing을 읽었으며 Mark Story의 Testing CakePHP Controllers the hard way을 읽고 Mark Story의 Win at life with Unit testing (PDF of slides)을 보았지만 여전히 혼란 스럽습니다. 필자는 어떤 언어로도 테스트를 작성하지 않았고 많은 경험이 없으며 이는 혼란에 기여할 가능성이 있음을 알아야합니다.CakePHP의 테스트 기반 개발

TDD를 사용하여 CakePHP 웹 사이트를 구축하는 방법에 대한 코드 예제를 단계적으로 살펴 보시기 바랍니다. TDD에 관한 기사가 있습니다. CakePHP로 테스트하는 기사가 있지만, 아직 두 가지에 관한 심층적 인 기사를 찾을 수 없습니다. 나는 전체 과정을 통해 내 손을 잡는 무언가를 원한다. 내 Google-fu가 실패하지 않는 한, 그러한 기사가 아직 게시되지 않았기 때문에 기본적으로 기사를 작성하라고합니다. (또는 길게 스택 오버플로 응답), 시간이 걸립니다. 이것은 어려운 주문이기 때문에, 나는 누군가가 자신의 노력에 대해 더 나은 보상을 할 수있게되면, 많은 질문을 할 가치가있는이 질문에 대해 현상금을 지급 할 계획입니다. 시간 내 주셔서 감사합니다.

+0

당신이 정말로 원하는 것은 무엇을 의미합니까? 깊이있는 것보다 무엇을 의미하는지 이해할 수 있도록 예제 프로젝트를 제공 할 수 있습니까? – ncm

+0

그리고 bonty가 끝나는 시간보다 더 많은 시간이 필요할 수도 있습니다. – ncm

답변

10

TDD는 본질적으로 테스트를 작성하기 전에 테스트를 작성한다는 점에서 위태로운 것입니다.

제작하기 전에 테스트를 만들어야합니다. 이 경우 으로 생각하고으로 생각하고 테스트를 작성하기 위해 유스 케이스를 분석해야합니다.

누군가 데이터를 볼 수있게하려면 컨트롤러에 대한 테스트를 작성해야합니다. 아마도 testViewSingleItem()과 같을 것입니다. 원하는 데이터가 assertContains() 일 것입니다.

이 글이 작성되면 으로 실패해야합니다. 그런 다음 컨트롤러 메소드를 작성하여 테스트를 통과하십시오.

그게 전부입니다. 각 유스 케이스별로 씻어서 반복하십시오. 이것은 단위 테스트입니다.

기능 테스트 및 통합 테스트와 같은 다른 테스트는 응용 프로그램의 여러 측면을 테스트하는 것입니다. 그것은 당신에게 달려있다. 생각해 보면을 당신의 프로젝트에 어느 것이 유용하다고 생각하십니까?

대부분의 경우 단위 테스트는 응용 프로그램의 개별 부분을 테스트 할 수있는 방법입니다. 일반적으로 기능에 가장 큰 영향을 미치는 부품, "중요 경로".

이것은 매우 유용한 TDD 자습서입니다. http://net.tutsplus.com/sessions/test-driven-php/

+0

시간과 조언에 감사드립니다! 그 링크도 도움이됩니다. 그래도 CakePHP로 TDD에 대한 심층적 인 연습을 보는 것에 관심이 있습니다. – Nick

+0

TDD와 CakePHP 사이에 진짜 "것"이 없습니다. TDD 이론을 배우고 PHP Unit을 배운 다음 몇 가지 테스트를 작성하십시오. 이 책에는 테스트에 관한 좋은 장이 있습니다. http://book.cakephp.org/2.0/en/development/testing.html –

+0

또한 CakePHP 자체의 소스 코드를 살펴보십시오. ['lib/Cake/Test'] 디렉토리 (https://github.com/cakephp/cakephp/tree/master/lib/Cake/Test/) 디렉토리에서 프레임 워크의 모든 유닛 테스트를 찾을 수 있습니다 .컨트롤러 나 모델을 테스트하기위한 단위 테스트를 만드는 방법을 이해하는 등 자신의 테스트에 대한 예제로 사용할 수 있습니다. – thaJeztah