나는이 .feature
문이 : 나는 정규식오이 :: ArityMismatchError
I am logged in as an "Teacher".
I am logged in as an "Professor".
I am logged in as an "Student".
I am logged in as a "NoRole"
을
I (\w{2})?\s?(log|login|logged)\s?(\w{2}) as (an|a) "(Teacher|Professor|Student|NoRole)"\.?
나는의 경우 블록을 실행할 수 있도록 나는 따옴표에 넣어했다 그들처럼 :
case role_type
when 'Student'
on(LoginPage).login_with(FigNewton.Studnet_email,'password')
and so on ... for other roles
지금 내가이 정규식을 실행하면 Given
Given(/^I (\w{2})?\s?(log|login|logged)\s?(\w{2}) as (an|a) "(Teacher|Professor|Student|NoRole)"\.?$/) do |user_role|
# code
end
와 EP 정의는이 오류를 제공합니다 :
Cucumber::ArityMismatchError: Your block takes 1 argument, but the Regexp matched 5 arguments
검색어 : 내가 아는 한, 인수는 "교수"하는, 그래서 다섯 개 인수는 이야기와 같은 따옴표 사이에 그들이다 약.
이 Cucumber::ArityMismatchError error after Transform에 나는, 단계가 어떤 블록 수 있지만 블록, regex arguments(blocks)
여기의 문제는 [이전 질문] (http://stackoverflow.com/questions/3450137/cucumberaritymismatcherror-error-after-transform)과 동일합니다. 인수는 Regexp에 의해 반환 된 캡처 그룹입니다. 캡쳐 그룹은 인용문이 아니라 대괄호로 표시됩니다. 즉, arguements/groups는'(\ w {2})','(log | login | logged)','(\ w {2})','(| a)','(선생님 | 교수님 | 학생 | NoRole) '과 같이 말입니다. 다른 질문의 대답과 동일한 접근법이 필요합니다. 즉, 캡처하지 않는 그룹을 캡처하거나 만들지 마십시오. –
@JustinKo thats 내가 질문을 게시 한 이유 ** 정규식 인수 (블록)에서 역할 유형을 분리하는 방법 ** 내 정규 표현식이 작동하지 않습니다. ** – paul
당신은 ' (? : an | a)와 같이 (/^I (? : \ w {2})? \ s (?: 로그인 | 로그 됨) \ s? "\.? $ /)' –