2011-08-23 3 views
2

오늘 아침 나는 TDD에 관한 동료와 대화를 나누었습니다. 진정으로 TDD를 수행하려는 그의 견해로는 테스트가 코드보다 먼저 작성되어야합니다. 필자는 TDD를 수행하는 테스트의 피드백을 기반으로하여 테스트가 코드와 의사 결정을 유도하는 한 (예 : 종속성 삽입, 단일 책임 등 ...) 것으로 주장했습니다. 그래서 나는 Test First와 Test Driven을 구별해야한다고 주장했다.TDD에서 먼저 테스트를 수행해야합니까?

TDD 규칙을 이해하고 책, 블로그 및 민첩한 포럼을 읽었습니다. 지금까지이 책에서 모두가 딴 소리를 지르는 사람들은 나에게 TDD라는 책 텍스트 정의를주었습니다.

내가이 그룹에 연락하는 이유는 "해결책은 텍스트 북에 없습니다"라는 것을 알고 있기 때문입니다. 또한 나는 이것이 합리적이라고 생각하는 유일한 미친 사람이 아님을 알아야합니다. :)

TDD를 수행하려면 먼저 테스트를 작성해야합니까? 당신의 의견 것입니다?

+0

나는 이것이 http://programmers.stackexchange.com에 대한 질문이라고 생각한다. – steenhulthin

+1

테스트 드라이브 개발이 아직 존재하지 않으면 어떻게 할 수 있는가? –

+0

@steenhulthin - 그래서 ... 내가 뭘해야하니? 복사하여 붙여 넣기 stackexchange에, 내가 사용하지 않은 사이트와 지금까지 아무것도 알지 못했습니다. stackoverflow 모든 dev에 질문, 주제 토론의 대상이 될 것으로 생각합니다. 그게 바뀌 었습니까? 무엇 향후 계획? Stackoverflow paysite? 나는 지금 저축하기 시작할 수 있도록 알고 싶다. – Buzzer

답변

1

중요한 것은 iterations가 매우 작은 반복 프로세스라는 것입니다. 따라서 첫 번째 단계로 파일을 만들고 하나의 메소드가 stubbed 된 베어 본 (bare-bones) 클래스를 작성한 다음 해당 메소드를 호출하고 실패하는 테스트를 작성하면 처음 작성한 파일은별로 중요하지 않다고 생각합니다. 당신이 만들고있는 것이 파일을 저장하는 순서를 신경 쓰는 테스트를 작성하기에 충분할 정도로 보이게 할 것인지 결정해야합니다. 그러나 반복이 그보다 훨씬 커지면 아마도 TDD를하지 않을 것입니다. 전체 수업을 하나의 거대한 반복으로 작성하면 TDD로 간주되지 않습니다.

+0

이벤트 순서가 무의미하다는 것에 분명히 동의합니다. 전체 클래스를 선행 적으로 쓰는 경우 +1은 TDD로 계산되지 않습니다. – Buzzer

+0

@Buzzer : 그렇습니다. 코드를 작성할 때 테스트의 이점을 얻는 것이 좋습니다. 코드와 테스트간에 자주 이동함으로써 테스트 가능한 디자인으로 안내하고 피드백을 더 많이 제공해야합니다. 대조적으로 당신이 나의 동역자의 일부를 좋아하고 기능성이 쓰여질 때까지 필기 시험을 연기한다면, 필기 시험은 무의미하게됩니다. –

0

순수 TDD에서는 테스트가 먼저 작성됩니다. 팀에 필요한 훈련이있는 경우 테스트가 개발을 주도하는 한 개인적으로 OK라고 생각합니다. 모든 기능을 다루는 테스트가있을 때까지는 '완료'되지 않습니다.

+0

TDD와 리팩토링을 동시에 할 수 없다는 말입니까? – Buzzer

+0

@buzzer 어디서 그 말을 했습니까? – hvgotcodes

+0

죄송 합니다만 명시 적으로 언급하지 않았습니다. 필자는 "순수 TDD에서 테스트가 먼저 작성되었습니다"라는 주석을 언급 한 것입니다.이 테스트는 리팩터링 작업에서 순수한 TDD를 수행 할 수 없다는 것을 의미합니다. 나는 나머지 성명서와 100 건의 동의하에있다. – Buzzer

관련 문제