2016-10-13 10 views
1

사용자가 가능한 많은 역할로 로그인 한 상태에서 테스트해야하는 여러 시나리오가있는 기능이 있습니다. 결과도 동일해야합니다.BDD 작은어 스크립트 : 여러 역할에 대한 동일한 시나리오 그룹

Examples 테이블을 백그라운드에 둘 수 있습니까? 예를 들어 :

Feature: My general set of tests 

Background: 
Given I am logged in 
And I am logged in as <role> 

Examples: 
| role | 
| Sales | 
| Support | 
| Admin | 
| Auditor | 

Scenario: tests1 blah... 

Scenario Outline: tests 2 blah... 

그래서 내가하고 싶은 것을 오히려 각 역할에 대해 별도의 기능 파일을 관리하는 것보다 다른 배경 컨텍스트 파일을 특징으로 누구를 반복합니다. 이것이 가능한가?

답변

0

아니요, 불가능합니다. 당신이 얻을 수있는 가장 가까운 단계 정의는 "실제 역할이 매번 무작위로 선택되는"일반적인 역할 (영업, 지원, 관리자, 감사원) 중 하나에 로그인했습니다. 이것은 물론 테스트를 비 결정적으로 만들 것이고, 100 % 긍정적 인 경우이 역할이 실제로 결과에 아무런 영향을 미치지 않는다면 받아 들일 수 있습니다. 물론이 경우 시나리오에서 역할에 대해 언급하지 않는 것이 좋습니다.

0

BDD는 실제로 테스트하지 않는다는 것을 기억하십시오. 우리는 예제를 사용하여 우리가 원하는 행동을 설명합니다. 필요한 것은 행동의 예를 보여주는 하나의 시나리오입니다.

역할 중 하나가 다른 동작을 제공하는 경우 그 동작에 대한 예도 있습니다.

모든 역할에 대해 동일한 결과가 나오는지 테스트하는 더 좋은 장소는 역할이 다른 결과에 역할을 연결하는 단위 테스트 수준 일 수 있습니다. 물론 수동으로 테스트 할 수도 있습니다. 기회를 얻는 것은 매우 좋습니다. 만약 당신이 그것을 올바르게하고 수동으로 작동한다면, 당신이 가진 한 가지 예를 깨지 않고 깨지 않을 것입니다. 충분 해.

모든 역할의 모든 순열을 이처럼 다루면 매우 느린 빌드로 끝나고 너무 많은 시나리오가 나오게됩니다. 그 중 더 흥미로운 시나리오는 없습니다. 테스트보다는 설명하려는 예제를 생각해 보면 더 쉬울 것입니다.

+0

이 시점까지 나는 당신이 정확하다고 생각합니다. 솔루션은 하나의 일반적인 역할을 사용하여 그에 대한 시나리오를 실행하고 모든 역할 옵션을 실행하는 단일 시나리오를 통해 해당 기능의 특정 단일 기능에 대한 작업을 수행하는 것입니다. –