본 시리즈에서는 BDD를 지원하는 Cucumber에 대하여 소개해드립니다.
행위주도개발에 대해 간략하게 써봅니다.
이번 포스트에서는 Cucumber framework에서 쓰이는, Gherkin 이라는 문법에 대해서 작성합니다.
Cucumber는 연습해보고싶어도 main에서는 사용해볼 수 없습니다. 어떻게해야할까요?
feature파일 내부 scenario의 각각의 step은, 특정 메소드와 연결을 해주어야 합니다.
자, Feature파일을 작성하고, 각 Step에 해당하는 StepDefinition 내부의 메소드를 지정해주었다면, 실행을 해야합니다.
scenario를 추가해나가보면, 중복되는 동작들이 있을 것 입니다.
모든 시나리오의 전제조건이 있다면, Cucumber에서는 어떻게 할까요?
테스트케이스를 테스트종류에 따라 나누고자할때 유용한 방법은 무엇일까요?
BDD를 Python에서 해보려면 어떻게해야할까요?
Behave 라이브러리를 사용하기 위해서는 특정한 파일계층을 구성해야합니다.
StepDefinition파일과 각각 Step과 연결된 모듈을 생성했다면, 내부 로직을 구현해야할 것 입니다.이때 어떠한 흐름이 있는 시나리오라면, 특정 Request의 response에서 ID값을 뽑아 다음 Request로 넘기는 등의 로직이 필요할 수도 있습니다.
java의 cucumber-jvm과 마찬가지로, Behave 도 Cucumber를 지원하는 라이브러리이기 때문에, Hook을 작성할 수 있습니다.
Scenario outline과 examples 키워드를 이용하여 하나의 scenario에 대해 몇몇 변수에 대해 반복적으로 실행해볼 수도 있습니다.
Behave 에서도 Tag를 통하여 테스트케이스의 관리 및 실행이 가능합니다. 특정 태그를 가지고 있는 특정 시나리오만 따로 지정해서 실행해줄 수도 있습니다.
Scenario outline에서, 여러개의 태그를 섞어서 사용해야할 경우도 있습니다. 이 때, 각각의 example마다 다른 태그를 지정해줄 수 있습니다.
behave 라이브러리의 hook를 사용할 떄는 실행 순서를 유의해야합니다.