2017-05-11 5 views
0

오이 v1 단계 정의에 기반한 RegExp를 Cucumber Expression 기반 Cucumber v2.0.0-rc.9 단계 정의로 변환하려고합니다. 나는 다음과 같은 정규 표현식을 사용하여 몇 단계의 정의가 :오이 표현 : 엄격한 복수 단어 대체 텍스트는 어떻게 작성합니까?

I am on the "Login" page 
I go to the "Home" page 

내가로 전환하고 싶습니다 :

/^I (?:am on|go to) the "([^"]*)" page$/ 

그 길을, 나는 내 기능 파일에서 다음 중 하나를 쓸 수 있습니다 Cucumber Express를 사용하여 맞춤 매개 변수를 사용할 수 있지만 (?:am on|go to)을 복제하는 좋은 방법을 찾을 수 없습니다.

I am to the "Login" page 

:하지만 그것은 다음과 같이 무의미한 단계를 작성하기위한 수 있다는 것입니다

I am/go on/to the "{captureString}" page 

내가 그 접근 방식에 대해 싫어하는 것 : 내가 함께 왔어요 가장 좋은 여러 alternative texts을 사용하는 것입니다 의도적으로

I (am on|go to) the "{captureString}" page 

하지만 오이 표현 - 자바 스크립트 : 나는 또한 | 문자과 같이 포함 된 단일 optional text를 사용하여 시도 escapes the | character, 그래서 결과 정규식은 다음과 같이 보았다 :

/^I (?:am on\|go to)? the "([^"]*)" page$/ 

오이 표현식을 사용하여 단일, 복수 단어 대체 텍스트 그룹이 어떤 방법이 있나요?

I (am on)(go to) the "{captureString}" page 

을이 솔루션은 아직도 내가 원하는만큼 엄격하지, 그것은 다음과 같이 문자열을 일치로 :

I the "Login" page 
I am ongo to the "Home" page 

하지만

답변

0

여러 개의 옵션 텍스트로가는 종료 Cucumber Expression 자체가 여러 대체 텍스트를 읽는 것이 더 읽기 쉽다는 것을 알 수 있습니다. 나는 이것을하기위한 "올바른"방법에 대한 다른 제안에 여전히 열려있다. 그들은 당신이 당신이 정규식 나 표현을 사용하는 것을 너무

Given I am logged in

Give I am a visitor

및 일반 피할에서 일을 얼마나보다는 무슨 짓을했는지 설명 있도록

0

대안은 당신의 단계를 쓰기입니다. 개인적으로 나는 가지고 싶습니다

Given 'I am logged in' do 
    login user: @i 
end 

Given 'I have logged in' do 
    login user: @i 
end 

두 가지를 모두 수행하는 표현식보다. 내 이유는 다음과 같습니다

  1. 의 많은 통화에 단계 응급 바이러스 정의 및 기능을 검색하기 쉽고 대신 물건을 할 단계 기관의 스텝 전화 기관 및 대리자를 가진 잘 결합
  2. 을 복제합니다.
  3. 더 간단합니다. 나는 항상 복잡하고 간결한 것보다 단순하고 약간 장황하다.

내가 어떤 페이지를 쓰는지 전혀 알지 못합니다. 그 이유는 시나리오가 무엇 때문인지 이유에 관한 것이어야하는 상황에 관한 것이기 때문입니다.

아무튼 사용하기를 바랍니다.