Ruby on Rails 의 Cucumber 사용 에 대한 자세 한 설명

3696 단어 RubyRailsCucumber
완료 되 지 않 은 장면 을@wip(작업 진행 중)태그 로 표시 합 니 다.이 장면 들 은 고려 에 포함 되 지 않 고 테스트 실패 로 표시 되 지 않 는 다.미 완성 장면 을 완성 하고 기능 테스트 를 통과 할 때 이 장면 을 테스트 세트 에 추가 하기 위해@wip 탭 을 제거 해 야 합 니 다.
    부족 한 프로필 을 설정 하고@javascript 로 표 시 된 장면 을 제거 합 니 다.브 라 우 저 를 사용 하여 테스트 합 니 다.일반 장면 의 실행 속 도 를 높이 기 위해 사용 을 중단 하 는 것 을 추천 합 니 다.
    @javascript 이 표 시 된 장면 대신 다른 프로필 을 설정 합 니 다.
        프로필 은 cucumber.yml 파일 에서 설정 할 수 있 습 니 다.

    #        :
    profile_name: --tags @tag_name
        명령 어 를 가지 고 프로필 을 실행 합 니 다:

    cucumber -p profile_name

    가짜 데이터(fixtures)를 바 꾸 려 면 미리 정 의 된fabrication을 사용 하 십시오.
    구형 웹 사용 하지 마 세 요.steps.rb 절차 정의!최신 버 전의 Cucumber 는 웹 steps 를 제거 하고 군더더기 가 되 는 장면 을 사 용 했 으 며 응용 분 야 를 정확하게 반영 하지 못 했다.
    원소 의 시각 적 문 자 를 검사 할 때,원소 의 문 자 를 검사 하 는 것 이지 id 를 검사 하 는 것 이 아니다.이렇게 하면 i18n 의 문 제 를 찾 아 낼 수 있다.
    같은 종류의 대상 에 게 서로 다른 기능 특색 을 만 듭 니 다:

  #  
  Feature: Articles
  # ...      ...

  #  
  Feature: Article Editing
  # ...      ...

  Feature: Article Publishing
  # ...      ...

  Feature: Article Search
  # ...      ...

    모든 기능 에는 세 가지 주요 성분 이 있다.
        Title
        Narrative-이 특색 이 무엇 에 관 한 지 짧게 설명 합 니 다.
        Acceptance criteria-각 독립 적 인 절차 로 구 성 된 장면.
    가장 흔히 볼 수 있 는 형식 은 Connextra 형식 이 라 고 합 니 다.

  In order to [benefit] ...
  A [stakeholder]...
  Wants to [feature] ...

이것 은 가장 흔 하지만 요구 하 는 형식 이 아니 라 서술 은 기능 의 복잡 도 에 의존 하 는 모든 문자 일 수 있다.
    장면 개술 을 자 유 롭 게 사용 하여 장면 을 준비 하 세 요(keep your scenarios DRY).
 

  Scenario Outline: User cannot register with invalid e-mail
   When I try to register with an email "<email>"
   Then I should see the error message "<error>"

  Examples:
   |email     |error         |
   |       |The e-mail is required|
   |invalid email |is not a valid e-mail |

    장면 의 절 차 는 stepdefinitions 디 렉 터 리 에 있 는.rb 파일 입 니 다.절차 파일 이름 관례 는[description]steps.rb。절 차 는 서로 다른 기준 에 따라 서로 다른 파일 에 놓 여 있다.모든 기능 에 단계 파일 이 있 을 수 있 습 니 다(homepage_steps.rb)
    。각 특정 대상 의 기능 에 절차 파일 을 만 들 수도 있 습 니 다(articlessteps.rb)。
    중복 을 피하 기 위해 다 중 단계 매개 변 수 를 사용 합 니 다.
    필드: 

User profile
   Given I am logged in as a user "John Doe" with an e-mail "[email protected]"
   When I go to my profile
   Then I should see the following information:
    |First name|John     |
    |Last name |Doe     |
    |E-mail  |[email protected]|

  #   :
  Then /^I should see the following information:$/ do |table|
   table.raw.each do |field, value|
    find_field(field).value.should =~ /#{value}/
   end
  end

    복합 절 차 를 사용 하여 장면 을 준비 합 니 다(Keep your scenarios DRY)
    # ...
    When I subscribe for news from the category "Technical News"
    # ...
    # 단계:
    When /^I subscribe for news from the category "([^"]*)"$/ do |category|
      steps %Q{
        When I go to the news categories page
        And I select the category #{category}
        And I click the button "Subscribe for this category"
        And I confirm the subscription
      }
    end
    항상 Capybara 부정 매 칭 을 사용 하여 긍정 적 인 상황 대신 shouldnot,주어진 시간 초과 에 맞 게 다시 시도 합 니 다.ajax 동작 을 테스트 할 수 있 습 니 다.Capybara 가 내 파일 을 읽 는 것 을 보고 더 많은 설명 을 얻 었 다.

좋은 웹페이지 즐겨찾기