Vue BDD
๐ ๋ชฉ์ฐจ Introduction BDD๋ ๋ฌด์์ธ๊ฐ? BDD๋ฅผ ์ ์ฌ์ฉํ๋๊ฐ? Vue์์ ์ด๋ป๊ฒ BDD๋ฅผ ์ ์ฉํ๋๊ฐ? Conclusion Reference ๐ Introduction Vue TDD๋ฅผ ์งํํ๋ฉด์ ๊ทธ๋์ TDD์ ํ๊ณ์ ๊ณผ ์ข๋ ์ข์ ์ฝ๋์ ๋ํ ์๊ฐ์ ํ๋ค๊ฐ BDD๋ฅผ ์ ํ๊ฒ ๋์์ต๋๋ค. ํ์ฌ์์ TDD๋ ๋ฌผ๋ก ๋งค์ฐ ๋์์ด ๋์์ต๋๋ค.(์ฃผ๋ก unit test) ์ด๋ฒ ํฌ์คํ
์ ๊ทธ๋์ ๊ทธ๋ฌํ ํ๊ณ์ ์ ๊ทน๋ณตํ๋ BDD๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๋ ค๋๋ฆฌ๋ ค๊ณ ํฉ๋๋ค. ํด๋น ์ฝ๋๋ ๊น ๋ ํฌ๋ฅผ ์ฐธ๊ณ ํ์๋ฉด ๋ฉ๋๋ค.๐ ๐ BDD๋ ๋ฌด์์ธ๊ฐ? BDD๋ Behavior Driven Development์ ์ฝ์์
๋๋ค. ์๋ ์ด๋ฏธ์ง๋ฅผ ๋ด์ฃผ์ธ์. ์ด์ฒ๋ผ TDD์ ์์ ๋ฒ์ ์ด ๋ฐ๋ก BDD์
๋๋ค.๐ ์์๋ BDD๋ฅผ ํ์ฌ fe..
Design Pattern
๐ ๋ชฉ์ฐจ Object Creation Constructor in es5 fucntion Constructor in prototype Constructor in Class ๐ Object Creation ๋น Object๋ฅผ ์์ฑํ๋ 3๊ฐ์ง ๋ฐฉ๋ฒ // 1. const object1 = {}; // 2. const object2 = Object.create(Object.prototype); // 3. const object3 = new Object(); Object์ key์ value๋ฅผ ํ ๋นํ๋ 4๊ฐ์ง ๋ฐฉ๋ฒ Dot Syntax newObject.key = "value"; Square Syntax newObject["key"] = "value"; Object.defineProperty Syntax Object...
Vue TDD
๐ ๋ชฉ์ฐจ 00.Introduction 01.Mixin Testํ๊ธฐ 02.Conclusion ๐ 00.Introduction ์ด๋ฒ ํฌ์คํ
์ mixins์ ํ
์คํธ ๋ฐฉ๋ฒ์ ๋ํด ๋ค๋ฃน๋๋น. ๐ mixins๋ ๊ทธ๋ ๊ฒ ์ด๋ ต์ง ์์์.(์ปดํฌ๋ํธ ํ
์คํธ์ ๋น์ทํ๊ฒ ํฉ๋๋ค.) ์ด๋ฒ ํฌ์คํ
์์๋ ์ด๋ป๊ฒ mixins๋ฅผ ํ
์คํ
ํ๋์ง์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. mixins๋ counter example๋ก ์งํํฉ๋๋ค. ํด๋น ์ฝ๋๋ ์ฌ๊ธฐ์์ ๋ณด์ค์ ์์ต๋๋ค. ๐ 01.Mixin Testํ๊ธฐ ์ด๋ฒ ํฌ์คํ
์ ์ดํด๋ฅผ ๋๊ธฐ ์ํด ๋จผ์ counter mixins ์ฝ๋๋ฅผ ์ง๋ณด๊ณ ๊ทธ๋ค์ ํ
์คํธ ์ฝ๋๋ฅผ ์์ฑํ๊ฒ ์ต๋๋ค. ํด๋น ์ฝ๋๋ ์ด๋ ๊ฒ ๋ฉ๋๋ค. // CounterMixins.js export default { data: () => ({ count..
Design Pattern
๐ ๋ชฉ์ฐจ ์๋ก Builder-Direrctor Pattern ์ด๋? Builder-Director Pattern Vue์ ์ ์ฉํด๋ณด๊ธฐ(FormBuilder) Implementing Vuex Implementing Vee-Validate Conclusion Reference ๐ ์๋ก Component๋ก vue๋ฅผ ๊ด๋ฆฌ ํ ๋ ์ฐ๋ฆฌ๋ ์ด๋ฌํ ๋ฌธ์ ๋ค์ ๋ง์ฃผ ํ๊ฒ ๋ฉ๋๋ค. Components |_SignInForm.vue |_CreditCardFrom.vue |_RegisterFrom.vue |_EditForm.vue |_SignUpForm.vue |_TeamAddForm.vue |_... ๋ง์ฝ ์ด ์๋ง์ Form๋ค์ |_FormBuilder.vue |_FormBuilder.js |_FormDirector.js ๋ก ..
Vue TDD
๋ชฉ์ฐจ Introduction What is Test Double Stub Spy Mock Conclusion Reference ๐Introduction ์ด๋ฒํธ์TDD๋ฅผ ํ๊ธฐ์ํด test double์ด๋ผ๋ ๊ฒ์ ๋ํด ๋ถ๊ฐ์ ์ผ๋ก ์์๋ณด๋ ํฌ์คํ
์
๋๋ค. ๐What is Test Double? ํ
์คํธ ๋๋ธ์ด๋ ์ค์ ๊ฐ์ฒด๋ฅผ ๋์ ํด์ ํ
์คํ
์์ ์ฌ์ฉํ๋ ๋ชจ๋ ๋ฐฉ๋ฒ์ ๋งํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ ์ค์ api ํต์ ์ ํ๋ ํจ์๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ด
์๋ค. asnyc function getTodos() { await axios.get('jsonplace-holder/todos'); } getTodos๋ฅผ ํ
์คํ
ํ๋ ค๋ฉด ์ค์ ๋คํธ์ํฌ api๋ฅผ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. ์ด๊ฒ์ ๋คํธ์ํฌ ์ฐ๊ฒฐ ์ํ์ ์ํฅ์ ๋ฐ์ ๊ฒ์ด๊ณ ํญ์..
Vue TDD
๐ ๋ชฉ์ฐจ ์๋ก TDD๋ฅผ ํ๋ฉด์ ๊ฒช์๋ ์ด๋ ค์๋ค TDD๋ฅผ ํ๋ฉด์ ์ข์๋ ์ ๋ค ๊ฒฐ๋ก ๐ ์๋ก ์ด๋ฒ ํฌ์คํ
์์๋ ๊ทธ๋์ ๋ค๋ค๋ tdd์ ๊ดํด ํ๊ณ ํด๋ณด๋ ํฌ์คํ
์
๋๋ค. ๊ฐ์ธ์ ์ผ๋ก tdd๋ฅผ ํ๋ฉด์ ๊ฒช์๋ ์ด๋ ค์๋ค ๊ทธ๋ฆฌ๊ณ ๋๊ผ๋ ์๊ฐ๋ค์ ์ ๋ฆฌํด ๋ณด๋ ํฌ์คํ
์
๋๋ค. ๐ TDD๋ฅผ ํ๋ฉด์ ๊ฒช์๋ ์ด๋ ค์๋ค TDD๋ฅผ ํ๋ฉด์ ๊ฒช์๋ ์ด๋ ค์๋ค์ ๋ค์ ์ธ๊ฐ์ง๊ฐ ์์ต๋๋ค. ์ด๋๊น์ง test๋ฅผ ํด์ผํ ๊น? ์ด๋ป๊ฒ ํ๋ฉด ์์กด์ฑ์ ์ค์ผ ์ ์์๊น? testcase๊ฐ ์๋ชป ๋๋ฉด ์ด์ฉ์ง? 1. ์ด๋๊น์ง test๋ฅผ ํด์ผํ ๊น? ๋ชจ๋ ์ฝ๋๋ฅผ test code๋ก ์ปค๋ฒํ๋ค๋ ๊ฒ์ ๋งค์ฐ ์ด๋ ต๊ณ ๋น์์ฐ์ ์ธ ์ผ์
๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋๊น์ง testcode๋ฅผ ์์ฑ์ ํด์ผํ ๊น์? ์ด๋ ๋ถ๋ถ์์ ์ค์๊ฐ ๊ฐ์ฅ ๋ง์ด ๋ ๊น์? ์ด๋ฐ๊ฒ๋ค์ ์ด์ฉ์ ์๋ ๊ฒฝํ์ด๋ผ๊ณ ์๊ฐ..
Vue TDD
๋ชฉ์ฐจ vscode snippet ์ด๋? vscode snippet ์ฌ์ฉํ๊ธฐ ๐ 1. vscode snippet ์ด๋? ๋ฏธ๋ฆฌ ์ง์ ํด๋ ์์ฝ์ด๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ธฐ๋ฅ ์
๋๋ค. ์ด๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ผ์ผ์ด ์ณ์ผํ๋ describe('', () => {})์ it('', () => {}) ๋ฅผ ์๋์ ์ผ๋ก ์์ฑํด๋ณด๊ฒ ์ต๋๋ค. ๐ 2. vscode snippet ์ฌ์ฉํ๊ธฐ ์ค์ ๋จผ์ Code > Preferences > User Snippets๋ก ์ด๋ํฉ๋๋ค. file์ด๋ฆ์ ์ ์ํ๊ณ javascript๋ก ์ค์ ํฉ๋๋ค. ๊ทธ๋ผ ์ด๋ฐ ํ์ผ์ด ์ด๋ฆฌ๊ฒ ๋ฉ๋๋ค. ์ด์ ์ด๋ ๊ฒ ์์ฝ์ด๋ฅผ ๋ฑ๋กํ ์ ์์ต๋๋ค. "describe": { // ์ ๋ชฉ "prefix": "desc", // ์์ฝ์ด "body": "descr..
Vue TDD
Table of Content Introduction Usage of Cypress1 Usage of Cypress2 Usage of Cypress3 Usage of Cypress4 Conclusion Reference ๐ Introduction ์๋
ํ์ธ์. ์ด๋ฒ ํฌ์คํ
์์๋ e2e test๋ฅผ ์งํํฉ๋๋ค. Cypress๋ฅผ ์ด์ฉํ์ฌ ์งํํ๊ฒ ๋ ๊ฒ์
๋๋ค. ๐ ์ด๋ฒ ํฌ์คํ
์ ๊ฐ๋จํ๊ฒ tdd-todo๋ฅผ ํตํ์ฌ 5๊ฐ์ todo๋ฅผ ์ถ๊ฐํด๋ณด๊ณ 5๊ฐ๊ฐ ์ ๋ง๋ก ์ถ๊ฐ๊ฐ ๋ฌ๋์ง์ ๊ดํ e2eํ
์คํธ๋ฅผ ์งํํ๋ ค๊ณ ํฉ๋๋ค. ๐จํด๋น ํฌ์คํ
์์๋ ์ค์น ๋ฐฉ๋ฒ์ ๋ํด์๋ ๋ค๋ฃจ์ง ์์ต๋๋ค. ๋ํ Cypress์ ๋ฌธ๋ฒ๊ณผ ๊ฐ์ ์์ธํ ๋ฐฉ๋ฒ์ ๋ค๋ฃจ์ง ์์ต๋๋ค. ๐ Usage of Cypress1 Cypress๋ฅผ ์ด์ฉํ๊ธฐ ์ ์ DOM ํ์ ํ ..