2016-12-02 6 views
0

더 유연한 시나리오를 구축 할 수있는 메커니즘을 찾고 있습니다. 데이터베이스 레코드의 존재를 테스트하는 두 가지 매우 비슷한 시나리오에 대한 예를 들어작은 오이에서 시나리오의 유연성.

:

Scenario Outline: Testing query with 1 attribute with these 2 record in and another 2 out of result 
    Given I'm connected to <db> database 
    When I select <query> from database 
    Then Result should contain fields: 
    | <row> | 
    | <yes1> | 
    | <yes2> | 
    And Result should not contain fields: 
    | <row> | 
    | <no1> | 
    | <no2> | 

    Examples: 
    | db | row | yes1 | yes2 | no1 | no2 | query               | 
    | 1 | model | 1013 | 1006 | 1012 | 1007 | "SELECT model FROM pc WHERE speed >= 3.0;"      | 
    | 1 | maker | E | A | C | H | "SELECT maker FROM product NATURAL JOIN laptop WHERE hd >= 100;" | 

Scenario Outline: Testing query with 2 attributes with these 2 record in and another 2 out of result 
    Given I'm connected to <db> database 
    When I select <query> from database 
    Then Result should contain fields: 
    | <rowA> | <rowB> | 
    | <yes1A> | <yes1B> | 
    | <yes2A> | <yes2B> | 
    And Result should not contain fields: 
    | <rowA> | <rowB> | 
    | <no1A> | <no1B> | 
    | <no2A> | <no2B> | 
    Examples: 
    | db | rowA | rowB | yes1A | yes1B | yes2A | yes2B | no1A | no1B | no2A | no2B | query        | 
    | 1 | model | price | 1004 | 649 | 2007 | 1429 | 2004 | 1150 | 3007 | 200 | "SELECT model,price FROM product" | 
    | 2 | name | country | Yamato | Japan | North | USA | Repulse | Brit | Cal | USA | "SELECT name, country FROM clases" | 

나는 속성의 일반 번호를 하나 개의 시나리오를 쓸 수 있도록하고 싶습니다. 테스트 된 행 수가 결정되지 않으면 좋을 것입니다.

Testing query with N attribute with these M record in and another L out of result 

방법 작은 오이에서이 작업을 수행 할 수 :

내 꿈은 하나 개의 일반적인 시나리오을 작성하는 것입니다? 모든 해킹이 가능합니까?

답변

4

짧은 대답은 없습니다. 작은 오이는 유연성에 관한 것이 아니라 작은 오이는 구체적인 예에 ​​관한 것입니다. 구체적인 예는 유연성을 제외한 모든 것입니다.

긴 대답은 :

당신은 테스트 도구로 작은 오이의 사용법을 설명하고 있습니다. 그러나 Gherkin의 목적은 사물을 시험하지 않기 위해서입니다. Gherkin의 목적은 개발과 특정 행동을 원하는 이해 관계자 간의 의사 소통을 원활하게하는 것입니다.

테스트를 원한다면 원하는 것을 정확히 지원할 수있는 다른 툴링이 있습니다. 모든 테스트 프레임 워크를 사용할 수 있습니다. 자바를 주로 사용하기 때문에 개인적인 선택은 JUnit이 될 것입니다.

툴링을 결정하기위한 리트머스 테스트는 누가 이것을 이해할 수 있어야합니까?

대답이 비 기술자 인 경우, 저는 매우 구체적인 예와 함께 작은 오이를 사용할 것입니다. 구체적인 예가 데이터베이스의 항목을 비교하지 않을 가능성이 큽니다. 구체적인 예는 시스템의 외부 관찰 가능한 행동을 설명하는 경향이 있습니다.

대답이 개발자라면 프로그래밍 언어에 액세스 할 수있는 테스트 프레임 워크를 사용할 것입니다. 이것은 당신이 요구하는 융통성을 허용 할 것입니다.

귀하의 경우, 프로그래밍 언어를 요구하고 있습니다. 작은 오이와 오이는 당신의 경우에 맞는 도구가 아닙니다.

2

해킹없이 수행 할 수 있지만 적어도 한 줄에 전체 시나리오가 아니라고 생각합니다.
BDD 구조를 따르고 싶다면 BDD를 사용해야하는 이유는 무엇입니까?

당신은이와 같은 구조를 따라야합니다 : 당신이하지에 .IT 나쁜 관행 될 것 분할 초기 컨텍스트, 액션 (들) 및 결과 (들) 사이의 경계 획정이 필요

Given 
When 
Then 

을 이것들 사이에는 한계가있다.

명확한 구분은 재사용 가능성과 가독성을 높이며 디버깅에 많은 도움이됩니다.

BDD의 의미와 그에 대한 연구 방법을 조사해보십시오. BDD의 모범 사례가있는 체크리스트에 자동 시나리오의 코드 검토를 도울 수 있다면 도움이 될 수 있습니다.