몇 가지 기본적인 프로그래밍 실수를 범한 경우 specflow C#을 처음 접했습니다.Specflow 단계 정의가 실패로 인해 암시 적 형식 변수로 void를 설정할 수 없습니다.
나는 다음과 같은 포함 내 specflow에서 작업 목록이 있습니다 단계 사이
When I enter in invalid email Test.TestEmail.plc for Email address field
And I enter in invalid email Test.TestEmail.plc for Confirm email address field
...
And I enter in correct email [email protected] for Email address field
And I enter in non matching email [email protected] for Confirm email address field
...
And I enter in matching email address [email protected] for Confirm email address field
만 변경하면됩니다 - 이메일 (무효, 일치, 비 매칭) 의 종류 - 이메일 주소는 - 입력 된 텍스트 바
그래서 나는 그들을 paramertised 생각하지만 나는이 문제를 해결할 수있는 올바른 방법에 어떤 도움을 원했어 그래서 그것을 얻을 수 없습니다. 나는 시도하고 로케이터의에 의해 요소를 찾아 이메일 텍스트 문자열 유형을 설정 코드에서 모든
첫째 :
public void GetFieldAndEnterText(By fieldElement, string fieldText) =>
_driver.FindElement(fieldElement).SendKeys(fieldText);
단계 정의에서 내가해야 함은 다음과 같이 설정합니다
[When(@"I enter in (.*) email (.*) for (.*) field")]
public void WhenIEnterInInvalidEmailForField(string emailType, string fieldText, By fieldElement)
{
var email = _payment.GetFieldAndEnterText(PaymentDetailsResponsiveElements.EmailAddressField);
var confirmEmail = _payment.GetFieldAndEnterText(PaymentDetailsResponsiveElements.ConfirmEmailAddressField);
if (fieldElement.Equals("Email Address"))
{
return email;
}else if (fieldElement.Equals("Confirm Email Address"))
{
return confirmEmail;
}
_payment.GetFieldAndEnterText(fieldElement, fieldText);
}
세 가지 매개 변수를 전달하려고합니다. 첫 번째 코드는 코드 측면에서 중요하지 않습니다. 따라서이 단계 정의를 반복해서 사용할 수 있습니다.
두 번째 매개 변수는 입력 할 이메일을 알기 위해 specflow에서 언급 한 이메일입니다.
마지막 매개 변수는 전자 메일 필드 또는 전자 메일 필드를 확인한 경우 해당 요소를 찾으려고하는 로케이터입니다.
그러나 단계 정의에서 전자 메일 및 confirmemail 변수에 대한 오류가 발생합니다. 이는 암시 적 형식으로 void를 설정할 수 없으며 void 형식이므로 반환되지 않습니다.
이 문제를 해결하는 올바른 방법은 무엇입니까?
매개 변수 주위에 작은 따옴표를 넣고 정규식을 조정하십시오. 그래서 ""('. *)'('. *') 이메일 (. *) 입력시에는 '정확한 이메일' '[email protected]'을 입력하십시오. '(. *)'field ")] –