๐ ๋ชฉ์ฐจ
- Introduction
- Gherkin?์ด ๋ญ๋ฐ?
- Gherkin ํค์๋
- Good And Bad Gherkin example
- Conclusion
- Reference
๐ Introduction
์๋ ํ์ธ์. ์ด๋ฒ ํฌ์คํ ์ ๋๋์ด BDD๋ฅผ ์์ํ๋ ์ฒซ๊ฑธ์ ์ ๋๋ค. ๋ฐ๋ก Gherkin์ธ๋ฐ์. ๊ทธ๋ผ ์ง๊ธ๋ถํฐ Gherkin์ด ๋ญ์ง ์ฌ์ฉ์ ์ด๋ป๊ฒ ํ๋์ง์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ๐
๐ Gherkin?์ด ๋ญ๋ฐ?
Gherkin
์ด๋ cucumber
์ ํํ ํ์์
๋๋ค. ์๋ ๊ทธ๋ฆผ์ ๋ด์ฃผ์ธ์.
Gherkin์ ๋ฐ๋ก ์ด๋ ๊ฒ Given
, When
, Then
์ผ๋ก ์ ์๋ฅผ ํฉ๋๋ค.
Before Gerkin์ ๋ณด๋ฉด ๊ธฐํ์๋ก ๋ณด์ด๋ ์ฌ๋๊ณผ ๊ฐ๋ฐ์๋ก ๋ณด์ด๋ ์ฌ๋์ด ์๋ก ๋ํ๋ฅผ ํฉ๋๋ค. ๊ฐ๋ฐ์์ ๋ง์ ๊ธฐํ์๋ ์ดํด๋ฅผ ๋ชปํ์ฃ . ํ์ง๋ง Gherkin์ ์ฌ์ฉํ๋ค๋ฉด ๊ฐ๋ฐ ์ธ์ด๋ฅผ ์ข๋ ์์ฐ์ด์ฒ๋ผ ๋ณํ์ ํ ์ ์์ต๋๋ค.
๐ Gherkin ํค์๋
Gherkin์๋ ํฌ๊ฒ 7๊ฐ์ง ํค์๋๋ค์ด ์์ต๋๋ค.
1. Scenario
ํน์ ํ๋์ ๋ํด ๊ธฐ์ ํ ๋ ์ฌ์ฉํฉ๋๋ค. jest์ describe
๋ฅผ ์๊ฐํ๋ฉด ํธํ ๊ฑฐ ๊ฐ์์!
2. Given
์์คํ ์ด ์ด๋ ํ ์ํ์ ์์ด์ผํ๋ ์ง์ ๋ํด ๊ธฐ์ ํฉ๋๋ค.
3. When
์ ์ ์ ์ก์ ์ ๊ธฐ์ ํ ๋ ์ฌ์ฉํฉ๋๋ค.
4. Then
์๋ก์ด ์ํ์ ๋ํด assertion์ ํ ๋ ์ฌ์ฉํฉ๋๋ค.
5. And
Given/When/Then์ ์ฌ์ฉํ ๋ค์ ์ถ๊ฐ์ ์ธ ๊ฒ์ ๊ธฐ์ ํ ๋ ์ฌ์ฉํฉ๋๋ค..
6. But
And์ ๋๊ฐ์ต๋๋ค.
7. Background
Givens๊ณผ ands๋ฅผ ๊ณต์ ํฉ๋๋ค. BeforeEach
๊ฐ์ ๊ธฐ๋ฅ์ด๋ผ๊ณ ๋ณด์๋ฉด ํธํ ๊ฑฐ ๊ฐ์์.
๊ธฐ๋ณธ์ ์ธ Gherkin์ ์ฌ์ฉ ์๋ฅผ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
Feature: ์ฌ๊ธฐ์ feature ์ค๋ช
์ด ๋ค์ด๊ฐ๋๋ค.
Background:
Given I open the page # ๊ฐ๊ฐ์ ์๋๋ฆฌ์ค๊ฐ ์์๋๊ธฐ์ ์ ์คํ์ด ๋ฉ๋๋ค.
Scenario: Opening the page # ์๋๋ฆฌ์ค์ ๋ํด ์ค๋ช
ํฉ๋๋ค
Given bblah
When Ballhhahhh
And Balleah
But Balla
Then the page display "Main Heading"
๐ Good And Bad Gherkin example
1. Good Gherkin
- ํ๋์ scenario์๋ ํ๋์ ํ๋๋ง!
- 3์ธ์นญ์ผ๋ก ์ธ๊ฒ
- Given์ ๋ฅ๋์ ์ธ ์ด์ฒด๋ก, When๊ณผ Then์ ์๋์ ์ธ ์ด์ฒด๋ก
- action์ด ๋ฒ์ด์ง๋ ๊ฑธ ํ ๋๋ก ์์ฑ, ์ด๋ป๊ฒ action์ด ๋์ํ๋์ง์ ๋ํด ๊ธฐ์ ํ์ง ๋ง๊ฒ
- ์คํ ๋ฐ์ด ์คํ ์ผ๋ก ์์ฑํ์ง ๋ง๊ฒ
- ์๋๋ฆฌ์ค ๊ฐ์๋ 2 blank lines์ผ๋ก ๊ตฌ๋ณํ ๊ฒ
์ข์ ์์ :
Feature: Google Searching
Scenario: Search from the search bar
Given a web browser is at the Google home page
When the user enters "panda" into the search bar
Then links related to "panda" are shown on the results page
Scenario: Image search
Given Google search results for "panda" are shown
When the user clicks on the "Images" link at the top of the results page
Then images related to "panda" are shown on the results page
2. Bad Gherkin
์์ ๋งํ Good Gherkin์ ๋ฐํ๋ ๋ชจ๋ ๊ฒ๋ค!
๋์ ์์ :
# ์ผ์ธ์นญ... ์ ์ฐจ์งํฅ...
Feature: Subscribers see different sets of stock images based on their subscription level
Scenario: Free subscribers see only the free articles
Given users with a free subscription can access "FreeArticle1" but not "PaidArticle1"
When I type "freeFrieda@example.com" in the email field
And I type "validPassword123" in the password field
And I press the "Submit" button
Then I see "FreeArticle1" on the home page
And I do not see "PaidArticle1" on the home page
Scenario: Subscriber with a paid subscription can access "FreeArticle1" and "PaidArticle1"
Given I am on the login page
When I type "paidPattya@example.com" in the email field
And I type "validPassword123" in the password field
And I press the "Submit" button
Then I see "FreeArticle1" and "PaidArticle1" on the home page
๐ Conclusion
์ด๋ฒ ํฌ์คํ ์์๋ Gherkin์ ๊ธฐ๋ณธ์ ์ธ ์ฉ๋ฒ๊ณผ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง์ ๋ํด ์์๋ณด์์ต๋๋ค. ๊ทธ๋ผ ์ด์ ๋ค์ ํฌ์คํ ์์๋ ์ด๊ฒ์ ํ ๋๋ก ์ด๋ป๊ฒ cypress์์ ๋์ํ๋์ง์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.๐
๐ Reference
'Vue BDD' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Vue BDD - Cypress Mock Api (0) | 2020.10.13 |
---|---|
Vue BDD - Cypress ์ ์ฉํ๊ธฐ (0) | 2020.10.13 |
Vue BDD - Setting (0) | 2020.10.06 |
Vue BDD - Intro (0) | 2020.10.05 |