2012-08-14 2 views
3

나는 테스트를 작성하고 있으므로 재사용하고 싶습니다. 따라서 전체 테이블을 매개 변수화하려고합니다. 테이블은 내 'Then'문에 위치하며 팀에 따라 유효성 검사가 필요한 테이블이 있습니다. 순간Specflow 매개 변수화 된 전체 테이블

내 시나리오의 개요는 다음과 같습니다

Given <teamName> uses this end point 
And the response is a Json 
When I perform a query to http:... 
Then I validate all the fields I need: 
|DataElement|Validation      |jsonPath   | 
|element1 |validate that it is not null |data.structure.path| 
|element2 |validate a name    |data.structure.name| 

그래서 나는 테이블 내부의 데이터를 parametrizing 각 행을 확인할 수 있습니다 알고

|DataElement|Validation      |jsonPath   | 
|<value> |<Specific validation performed>|<Json Path to query| 

을 다음 할 예

그러나 동일한 끝점을 사용하는 팀에 따라 데이터 요소와 필요한 유효성 검사가 매우 다르므로 WHOLE 테이블 개체를 다음과 같이 매개 변수화하려고합니다. 지역 :

가 그럼 난 모든 필드를 확인 I이 필요합니다 가능

<TeamTable> 

Examples: 
|Team A Table| 
|DataElement|Validation      |jsonPath   | 
|element1 |validate that it is not null |data.structure.path| 
|element2 |validate a name    |data.structure.name| 
|element1 |validate age is valid   |data.structure.age | 


|Team B Table| 
|DataElement|Validation      |jsonPath    | 
|element1 |validate is a Date    |data.structure.date  | 
|element2 |validate something more  |data.structure.something| 
|element1 |validate US postcode   |data.structure.postcode | 

인가? 전체 표를 어떻게 매개 변수화할 수 있습니까?

답변

1

Specflow에서는 가능하지 않다고 생각합니다. 잘못된 것일 수 있습니다.

다른 종류의 테스트 프레임 워크를 사용하는 것이 가장 좋은 테스트 유형이라고 생각합니다. Specflow는 비즈니스 담당자와 기능을 공유하고 토론해야 할 때 가장 큰 가치를 제공합니다. 귀하의 예에서는 비즈니스가 jsonPath에 관심이 없으므로 NUnit 평범한 곳으로 템플릿 테스트를 쉽게 만들 수있는 곳으로 테스트하는 것이 좋습니다.

1

Specflow 여기, 지원 테이블 PARAMS 않는 예는 다음과 같습니다 도움에 대한 지원을 위해

When following transactions are added 
| TransactionDate | TransactionAmount | AccountNumber | Type | CR/DR | 
| 1/20/12   | 10,000   | 102   | Cash | DR | 
| 1/20/12   | 6,500    | 106   | Cash | DR | 
| 1/21/12   | 10,001   | 102   | Cash | DR | 

    [When(@"following transactions are added")] 
    public void WhenFollowingTransactionsAreAdded(Table table) 
    { 
     // Now you can either do for each 
     foreach (var row in table.Rows) 
     { 
      // do stuf 
     } 

     // Or use an assist helpers to map table to an object 
     var transactions = table.CreateSet<Transaction>(); 
    } 

이 헬퍼 테이블에 대한 SpecFlow docs

기본적인 물건을 볼 here