Vue TDD

Vue TDD - ๋ฒˆ์™ธ2 (mixins tesing)

2020. 9. 23. 17:42
๋ชฉ์ฐจ
  1. ๐Ÿ“Œ ๋ชฉ์ฐจ
  2. ๐Ÿ“Œ 00.Introduction
  3. ๐Ÿ“Œ 01.Mixin Testํ•˜๊ธฐ
  4. ๐Ÿ“Œ 02.Conclusion
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ ๋ชฉ์ฐจ

  • 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: 0
  }),
  methods: {
      increment() {
      this.count++;
    },
    decrement() {
      this.count--;
    }
  },
}

์ด๋ฒˆ์—๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

import { shallowMount } from '@vue/test-utils';
import CounterMixins from '../../src/mixins/CounterMixins';

describe('CounterMixins test', () => {
  // Initialize - ์ƒˆ๋กœ์šด ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“ค๊ธฐ(mixins๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ)
  const Component = {
    render() {},
    mixins: [CounterMixins],
  };
  const wrapper = shallowMount(Component);
  const { vm } = wrapper;
  describe('data test', () => {
    it('data.count should be 0', () => {
      expect(vm.count).toBe(0);
    });
  });

  describe('method test', () => {
    beforeEach(() => {
      vm.count = 0;
    });

    describe('increment test', () => {
      it('increment once', () => {
        vm.increment();
        expect(vm.count).toBe(1);
      });
    });

    describe('decrement test', () => {
      it('decrement once', () => {
        vm.decrement();
        expect(vm.count).toBe(-1);
      });
    });
  });
});

์ปดํฌ๋„ŒํŠธ ํ…Œ์ŠคํŒ…์„ ํ• ๋•Œ ์ฒ˜๋Ÿผ shallowMount๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ ์€ ์ƒˆ๋กœ์šด ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด์„œ mixins๋ฅผ ๋„ฃ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋’ค์—๋Š” ์ปดํฌ๋„ŒํŠธ ํ…Œ์ŠคํŒ…๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ 02.Conclusion

Mixinsํ…Œ์ŠคํŒ…์€ ๊ทธ๋ ‡๊ฒŒ ๋ณต์žกํ•˜์ง„ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ผ๋ฐ˜์ ์ธ ์ปดํฌ๋„ŒํŠธ ํ…Œ์ŠคํŒ…๊ณผ ๋‹ค๋ฅธ์ ์€ ์ปดํฌ๋„ŒํŠธ์— ๋ผ์›Œ์ง€๋Š” mixins์ฒ˜๋Ÿผ ์ƒˆ๋กœ์šด ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ์ ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋‹ค์Œ ํฌ์ŠคํŒ…์„ ๊ธฐ๋Œ€ํ•ด์ฃผ์„ธ์š”~~!๐Ÿ™‡

๋ฐ˜์‘ํ˜•

'Vue TDD' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

ํšŒ์‚ฌ ํ”„๋กœ์ ํŠธ Hydration ์‹คํŒจ Github Action์œผ๋กœ ํ…Œ์ŠคํŒ…ํ•˜๊ธฐ (feat. cypress)  (5) 2022.01.19
Vue TDD - ๋ฒˆ์™ธ1 (Test Double)  (0) 2020.08.22
Vue TDD - ํšŒ๊ณ ํŽธ  (0) 2020.08.10
Test code ์‰ฝ๊ฒŒ ์“ฐ๊ธฐ - 1  (0) 2020.08.06
Vue TDD - E2E ํŽธ  (0) 2020.08.02
  1. ๐Ÿ“Œ ๋ชฉ์ฐจ
  2. ๐Ÿ“Œ 00.Introduction
  3. ๐Ÿ“Œ 01.Mixin Testํ•˜๊ธฐ
  4. ๐Ÿ“Œ 02.Conclusion
'Vue TDD' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ํšŒ์‚ฌ ํ”„๋กœ์ ํŠธ Hydration ์‹คํŒจ Github Action์œผ๋กœ ํ…Œ์ŠคํŒ…ํ•˜๊ธฐ (feat. cypress)
  • Vue TDD - ๋ฒˆ์™ธ1 (Test Double)
  • Vue TDD - ํšŒ๊ณ ํŽธ
  • Test code ์‰ฝ๊ฒŒ ์“ฐ๊ธฐ - 1
eddie0329
eddie0329
Front-end Developer
๋ฐ˜์‘ํ˜•
eddie0329
Eddie Sunny's Blog
eddie0329
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (100)
    • Summary of Book (0)
    • Vue Study (11)
    • Vue TDD (9)
    • Vue BDD (5)
    • Design Pattern (9)
    • Javascript Study (3)
    • React Study (15)
    • React TDD (1)
    • Vue Storybook (2)
    • Refactoring (0)
    • Graphql_Apollo (3)
    • Svelte (8)
    • Open Source (1)
    • D3 (4)
    • Typescript (1)
    • CSS (2)
    • Android (0)
    • Java (0)
    • Kotlin (0)
    • ์žก๋‹ด (0)
    • Swift (19)
    • Rust (2)
    • ํšŒ์‚ฌ์ด์•ผ๊ธฐ (2)
    • ReactNative Study (2)
    • Vitest (0)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • Home

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • react
  • vue tdd
  • vue3
  • storybook6
  • BDD
  • Vue
  • Cypress
  • vue bdd
  • react useRef
  • TDD
  • Javascript
  • swift5
  • Vue test
  • apollo
  • Kotlin
  • D3
  • swift
  • jest
  • react-component-slot
  • TypeScript
  • client only
  • slot ํŒจํ„ด
  • CSS
  • Design Pattern
  • javascript pattern
  • vue storybook
  • React Native
  • svelte
  • vue cypress
  • Nextjs

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.
eddie0329
Vue TDD - ๋ฒˆ์™ธ2 (mixins tesing)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.