좋아요, 저는 처음부터 끝까지 전체 TDD 프로세스를 파악하려고 노력했습니다.이 specflow 단계는 어떻게 구현해야합니까?
저는 ASP.NET MVC 2 응용 프로그램에 간단한 블로그를 작성하고 있습니다. 필자가 구현 한대로 테스트를 위해 수락 테스트를 시작했습니다. 내 BDD/ATDD 프레임 워크로 SpecFlow를 사용하고 있습니다.
저는 "Growing Object Orientated Systems Guided by Tests"을 읽었으므로 내가 가지고있는 것처럼 시작했습니다.
나는 모든 테스트 기능을 내 "얇은 조각으로 로그인 프로세스에 시작하기로 결정 본인은"걷기 해골을 "만드는거야 책에 제로 반복 설명 점에있을 것이다 체계의 분대 ". 이 경우 웹 사이트 자체와 데이터베이스.
로그인을 자세히 기록한 스토리를 작성 했으므로 내가 쓰고있는 첫 번째 시나리오는 성공적으로 로그인하고 있습니다. 상기 시나리오에서 기븐스의
하나는
"Given there is a registered user with the username 'TestUser' and password 'TestPassword'"
그러나 나는이 단계를 구현 갈 것이라고 어떻게 확신 해요입니다.
분명히 이것은 주어진 자격 증명으로 데이터베이스에 사용자가 있어야한다는 것을 의미합니다. 그러나, 좋은 작은 프로그래머처럼 나는 암호가 어떤 식 으로든 해쉬되기를 원할 것이다.
나를 삽입 할 수있는 일종의 DatabaseHelper 클래스를 작성하려고 생각했습니다. 그러나 암호에는 해시 코드가 포함되어 있으므로 응용 프로그램 자체에서 DRY를 위반하는 것으로 보이는 동일한 해싱 코드가 필요합니다.
그래서 정말 여러 관련 질문은 여기에 있습니다 :
- 내가이 단계 사투를 벌인거야 사실 나는 다른 곳에서 시작해야 의미합니까? 로그인 시스템이 사이트의 나머지 부분에 상당히 중요하더라도? 아마도 웹 사이트와 데이터베이스를 모두 테스트하는 기능 중에서 가장 얇은 기능일까요?
- 내가 가지고있는 곳과 같은 곳에서 시작한다면 어떻게 할 것입니까? DRY에 대해 아직 걱정하지 않겠습니까? Acceptance Tests가 외부에서 브라우저를 통해 기능을 테스트하는 것처럼 내가 할 수있는 일이별로 없을 것입니까?
질문이 다소 모호하게 보인다면 사과해야합니다. 나는 이쪽에서 TDD를 배울 사람이 없으며, 그 "패하"순간을 보지 못한 패러다임 변화 중 하나입니다. 아직.
미리 감사드립니다.
이 프로젝트는 나 자신을위한 운동입니다. 불행히도 저를 불편하게 만드는 시스템의 일부가 테스트입니다. 그러나, 당신의 옳은 일은 아마도 더 많은 가치가있는 무엇인가로 시작해야합니다. – Sekhat
행운을 빈다! – Lunivore