2010-12-01 3 views
2

이 같은 BDD의 일련의 시나리오가있는 경우 :BDD 스토리에서 Devise 인증과 같은 것을 추가하는 것을 어떻게 처리합니까?

  • 사용자가 암호를

등을 재설정 할 수 있어야한다

  • 사용자를 로그인 할 수 있어야한다
  • 사용자를 등록 할 수 있어야한다 . 일반적으로 첫 번째 시나리오를 작성한 다음 코드를 작성하여 통과시킨 다음 리팩터링하십시오.

    하지만 일단 올바르게 설치 및 구성한 Devise와 같은 것을 사용하면 이러한 모든 기능을 한 번에 제공 할 수 있습니다. 그 점에 대해 가장 좋은 방법은 무엇입니까? 왜냐하면 첫 번째 테스트를 작성하고 Devise가 테스트를 통과하도록 구성하면 작성한 다른 테스트가 전에는 실패하지 않고 자동으로 통과해야하기 때문입니다. 또는 BDD 워크 플로에서 테스트가 처음부터 실패하지 않아도되며 테스트가 통과되면 행복해야합니다.

  • 답변

    2

    BDD를 사용하면 사용자 또는 이해 관계자에게 제공하는 가치에 중점을 두어야합니다. 로그인하는 것은별로 가치가 없으므로 먼저 에 로그인하여을 먼저 입력하십시오.

    그런 다음 시나리오는 하나 쉽게 될 : 값이없는에서

    Given Fred is logged in 
    When Fred buys a book... 
    

    또는

    Given Fred is on his home page 
    When Fred buys a book... 
    

    로깅 및 그 사용되는 사람들 중 한 것에 대해 사과 BDD의 예에서와 같이 지난 해. 필요한 경우가 아니라면 먼저 로그인하지 말고 확실히 코드를 작성하지 마십시오.

    신뢰할 수없는 경우에만 타사 앱에 대한 시나리오를 작성합니다. 예를 들어 실패 할 수 있습니다. 아마 당신 자신의 소중한 시나리오에서 그것들을 사용하는 것이 더 나을 것입니다.

    +1

    글쎄, 현재 프로젝트에서 사용자가 핵심 모델 중 하나이며 가입 절차가 단순한 형식보다 조금 복잡하기 때문에 이해 관계자가 원하는 첫 번째 것은 등록 및 로그인입니다. 나는 이것을 구현함으로써 "무료"로 다른 기능을 얻을 수 있다고 생각했지만, 모든 기능에 테스트가 있으면 모든 것이 좋은 것입니다. – AGraefe

    +0

    BDD는 테스트에 관한 것이 아닙니다. 그것은 당신이 생산하는 시스템에 대한 오해를 푸는데 도움이되는 대화에 관한 것입니다. 테스트를 만드는 것은 그 자체로 오해의 테스트입니다. BDD는 테스트가 아니라 대화입니다. 이것이 가장 중요합니다. 희망은 그것이 의미가 있습니다! – Lunivore

    관련 문제