2017-02-13 4 views
0

Specflow 데이터는 테이블을 사용하여 피쳐 파일의 시나리오로 표현할 수 있습니다.피쳐 파일에서 specflow 데이터를 중앙화 하시겠습니까?

시나리오가 많은 경우 데이터를 찾고 변경하기가 어렵다고 생각합니다.

각 시나리오의 데이터로 기능 파일을 채우는 데 도움이되는 패턴이 있습니까? 즉 저장소를 사용하여 여러 기능에서 데이터를 중앙 집중화하는 방법은 무엇입니까?

+0

질문을 두 번 읽었는데 여전히 묻고있는 내용을 잘 모릅니다. 여러 시나리오를 동일한 기능 파일에 덤프 할 수 있는지 여부를 묻는 중입니까? – sashoalm

답변

1

당신이 Specflow를 처음 접했을 때의 질문 작성 방법을 살펴보십시오.

문제는 Specflow가 프로그래밍 언어가 아니라는 것입니다. 실제로 언어 구성 요소 중 몇 가지를 처음 보았을 때 방해가 될 수 있습니다.

BDD 방법론을 올바르게 따르는 경우 기능 파일을 작성해야하는 프로그래머가 아닙니다. 그것은 사업 사람들이어야합니다, 그래서 언어는 그렇게 열려 있습니다. 기능 및 시나리오 이름을 지정하는 자리 표시자를 몇 개 추가 한 다음 설정 작업 (지정)인지 작업 (When)인지 또는 테스트 (Then)인지 나타내는 모든 행의 시작 부분에 간단한 단어를 표시합니다.

예를 들어, 개발자로서 다음과 같은 예를 생각해 볼 수 있습니다.

Feature: Waking kids up for school 
Scenario Outline: When its a school day 
    Given it is a <day> 
    When it is <time> for <child> to get up 
    Then <Mum> should wake me up 

Examples: 
    |child |day|time |parent| 
    |daughter|mon|06:30|mum   | 
    |son  |mon|06:30|mum   | 
    |daughter|tue|06:30|mum   | 
    |son     |tue|06:30|mum   | 
    |daughter|wed|07:00|dad | 
    |son     |wed|07:15|dad | 
    |daughter|thu|07:00|dad | 
    |son  |thu|07:15|dad | 
    |daughter|fri|07:30|dad   | 
    |son  |fri|07:35|dad   | 

그리고이 예는 다른 부모가 주 또는 어떤 다른 시간과 일을 선호하는 우리의 (가상의) 가정의 일상의 모든 복잡성을 캡슐화한다. 내 아이가 났을 때

그러나 다른 한편으로는 나는 또한 복잡성이 시나리오에 반영 할 필요가 없기 때문에 이것은, 필요하다고 모두를 캡처 할 수

Feature: Waking kids up for school 
Scenario: When its a school day 
    Given it is a school day 
    When it is time to get up 
    Then my parent should wake me up 

쓸 수는 (심각하게 대숩 , 그들이 학교에가는 한!).

하지만 복잡성을 필요로하는 경우, 당신은 당신의 테스트 코드를 정의 할 수

[Binding] 
public void GivenItIsASchoolDay() 
{ 
    ScenarioContext.Current["Day"]="Wed"; 
    ScenarioContext.Current["Time"]="07:00"; 
    ScenarioContext.Current["Parent"]="Mum"; 
} 

가 같은 모든 그래서 당신은 당신의 코드를 구성하는 경우 있도록 Binding들, 글로벌 것을 잊지 마세요 장소, 당신은 모든 것을 중앙 집중식으로 처리했습니다.

관련 문제