2017-04-06 1 views
1

specflow를 사용하여 파일을 다운로드하고 특정 이름의 파일이 다운로드되는지 확인하려는 시나리오를 작성하려고합니다. 내가받지 못하고있는 이유Specflow가 적절한 단계 정의를 생성하지 않음

[When(@"I download a xyz file\.")] 

public void WhenIDownloadAXyzFile_() 

{ 
    ScenarioContext.Current.Pending(); 
} 

아무도 말해 줄 수 단계 정의 (*.) :

Scenario Outline: Download excel files 

Given I am on the Shipping 

When I download a <downloadfile> file 

Then I should be able to download the file. 

Examples: 

| downloadfile | 

| xyz    | 

| abc    | 

내가 내 steps.cs 파일에 생성됩니다 다음 단계 파일을 생성 할 때? 단계 정의에서 첫 번째 예제 컨텐츠를 보여줍니다.

+0

정말 이상합니다. 나는 똑같은 행동을한다. 해결 방법은 모든 데이터 ('| downloadfile |'줄 아래의 모든 것)를 제거한 다음 제대로 작동하는 것입니다. 단계 정의를 생성 한 후에 데이터를 다시 추가하십시오. – tnw

+0

작은 따옴표 (예 : '')를 추가하십시오. – Joel

+0

@ tnw- 문제가 해결되었습니다. 데이터에 주석을 달고 단계 정의 생성을 시도했습니다. 고마워 .. :) – user1943608

답변

0

단계와 같은 일반 텍스트 인 경우 :

프레임 워크가 "XYZ는"캡처 할 항목이 있는지 결정하기 위해 사용할 수있는 곳은 어디에도 없습니다
When I download a xyz file 

.

주위에 따옴표를 사용하면 프레임 워크에서 캡처하여 단계 정의에서 사용할 항목임을 알릴 수 있습니다.

When I download a 'xyz' file 

When I download a "xyz" file 

그리고

모두 올바른 단계 정의를 생성합니다. 모호한 성냥 때문에 스텝 정의의 정규식 내에서 (. *)을 사용하는 것은 오이 기반 프레임 워크에서 위험합니다.

의도 한 위치에서 (. *)를 사용하면 예를 들어 특정 크기의 파일을 다운로드하려는 경우 향후 단계 정의가 엉망이됩니다.

When I download a jpeg file 

그리고

When I download a 500kb jpeg file 

는 모두 같은 일을 일치합니다. 그러니 조심하십시오.

관련 문제