๐ ๋ชฉ์ฐจ
- Introduction
- BDD๋ ๋ฌด์์ธ๊ฐ?
- BDD๋ฅผ ์ ์ฌ์ฉํ๋๊ฐ?
- Vue์์ ์ด๋ป๊ฒ BDD๋ฅผ ์ ์ฉํ๋๊ฐ?
- Conclusion
- Reference
๐ Introduction
Vue TDD๋ฅผ ์งํํ๋ฉด์ ๊ทธ๋์ TDD์ ํ๊ณ์ ๊ณผ ์ข๋ ์ข์ ์ฝ๋์ ๋ํ ์๊ฐ์ ํ๋ค๊ฐ BDD๋ฅผ ์ ํ๊ฒ ๋์์ต๋๋ค. ํ์ฌ์์ TDD๋ ๋ฌผ๋ก ๋งค์ฐ ๋์์ด ๋์์ต๋๋ค.(์ฃผ๋ก unit test) ์ด๋ฒ ํฌ์คํ ์ ๊ทธ๋์ ๊ทธ๋ฌํ ํ๊ณ์ ์ ๊ทน๋ณตํ๋ BDD๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๋ ค๋๋ฆฌ๋ ค๊ณ ํฉ๋๋ค. ํด๋น ์ฝ๋๋ ๊น ๋ ํฌ๋ฅผ ์ฐธ๊ณ ํ์๋ฉด ๋ฉ๋๋ค.๐
๐ BDD๋ ๋ฌด์์ธ๊ฐ?
BDD๋ Behavior Driven Development์ ์ฝ์์ ๋๋ค. ์๋ ์ด๋ฏธ์ง๋ฅผ ๋ด์ฃผ์ธ์.
์ด์ฒ๋ผ TDD์ ์์ ๋ฒ์ ์ด ๋ฐ๋ก BDD์ ๋๋ค.๐ ์์๋ BDD๋ฅผ ํ์ฌ feature์ scenario๋ฅผ ๋จผ์ ์ ๊ฒ ๋๊ณ ๊ทธ๋ค์ TDD(unit test)๋ฅผ ์งํํ๊ฒ ๋ฉ๋๋ค.
๐ BDD๋ฅผ ์ ์ฌ์ฉํ๋๊ฐ?
๊ทธ๋ ๋ค๋ฉด ์ BDD๋ฅผ ํ๋ ๊ฒ์ผ๊น์? ์ ๋ต์ TDD์ ํ๊ณ๋ค ๋๋ฌธ์ ๋๋ค. TDD๊ฐ ์ค์ ์ ์ผ๋ก ํ ๋จ์ ์์ ์์๋ ์ฝ์ธ๋ฅผ ๋ณด์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌธ์์ ๊ธฐ๋ฅ์ ๋ง์ด ์ํํ์ง ์์ต๋๋ค. ์ด๊ฑธ ์ข๋ ์์ฐ์ด๋ก ๋ฐ๊พธ๊ณ ํ๋์ ๋ฐ๋ผ test๋ฅผ ํ๊ธฐ ๋๋ฌธ์ ๊ธฐํ์(์ฝ๋ฉ์ ๋ํด์ ์ ํ ๋ชจ๋ฅด๋)์ ์ํตํ๊ธฐ๊ฐ ์ข์ต๋๋ค.
๋ํ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ค์ ํ ์คํ ์ ํด๋ณผ ์ ์์ต๋๋ค. Unit test๋ก ์๋ฌด๋ฆฌ ์์ธํ๊ฒ ํด๋ณด์๋ ์ค์ integration ํ ์คํธ์์ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ ์ด๋ถ๋ถ์ ๋ณด์ํ ์ ์์ต๋๋ค.
๐ Vue์์ ์ด๋ป๊ฒ BDD๋ฅผ ์ ์ฉํ๋๊ฐ?
cypress์ cypress-cucumber-preprocessor๋ฅผ ์ด์ฉํ์ฌ BDD๋ฅผ ์์ฑํฉ๋๋ค. cypress์ ๊ฐ์ automationํด์ด ์์ด BDD๋ฅผ ๋ณด๋ค ํธํ๊ฒ ํ ์ ์์ต๋๋ค. ๋ณด๋ค ์์ธํ ๋ด์ฉ์ ๋ค์ ํฌ์คํ ์ ์ฐธ๊ณ ํด ์ฃผ์ธ์.
๐ Conclusion
์๋ฒ์ ํ์ฌ์์ ๊ธฐํ์๋ถ์ด ํ์์ด ์๋๋ฆฌ์ค๋ฅผ ์จ์ฃผ์ ๊ฒ์ ๋ณด๊ณ ๋ง์ด ๋๋์์ต๋๋ค. ์ ์ด๋ ๊ฒ ํ ์คํ ์ ํ๋๊ตฌ๋! ์ด๋ฐ ๊ด์ ์์ ์ฑ์ ๋ณด๋๊ตฌ๋!(์ฑ์ ๋ง๋๋ ๊ด์ ๊ณผ๋ ์กฐ๊ธ ๋ค๋ฅธ) ๊ทผ๋ฐ ์ด๊ฑธ ์ฝ๋๋ก ์ฎ๊ธธ ์๋ ์์๊น? ๋ผ๋ ์๊ฐ์์ BDD๋ฅผ ์ฐพ์๋ณด๊ฒ ๋์์ต๋๋ค.
๊ทธ๋ผ ๋ค์ ํฌ์คํ ์์๋ BDD setting์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ํฌ์คํ ์ ํด๋ณด๊ฒ ์ต๋๋ค~~!
๐ Reference
'Vue BDD' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Vue BDD - Cypress Mock Api (0) | 2020.10.13 |
---|---|
Vue BDD - Cypress ์ ์ฉํ๊ธฐ (0) | 2020.10.13 |
Vue BDD - Gherkin (0) | 2020.10.06 |
Vue BDD - Setting (0) | 2020.10.06 |