Vue BDD

Vue BDD - Intro

eddie0329 2020. 10. 5. 17:00
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ ๋ชฉ์ฐจ

  • 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

๋ฐ˜์‘ํ˜•