-
단위 테스트 - Search 컴포넌트테스트/단위 테스트 (Vue) 2021. 9. 8. 01:10
단위 테스트 - Search 컴포넌트
Search.vue
<template> <div class="container"> <input v-model="title" class="form-control" type="text" placeholder="Search for Movies, Series & more" @keyup.enter="apply" /> <div class="selects"> <select v-for="filter in filters" v-model="$data[filter.name]" :key="filter.name" class="form-select"> <option v-if="filter.name === 'year'" value=""> All Years </option> <option v-for="item in filter.items" :key="item"> {{ item }} </option> </select> </div> <button class="btn btn-primary" @click="apply"> Apply </button> </div> </template>
<script> export default { data() { return { title: '', type: 'movie', number: 10, year: '', filters: [ { name: 'type', items: ['movie', 'series', 'episode'] }, { name: 'number', items: [10, 20, 30] }, { name: 'year', items: (() => { const years = [] const thisYear = new Date().getFullYear() // 올해의 년도 반환 for (let i = thisYear; i >= 1985; i -= 1) { years.push(i) } return years })() } ] } }, methods: { async apply() { this.$store.dispatch('movie/searchMovies', { title: this.title, type: this.type, number: this.number, year: this.year }) } } } </script> ...
Search.test.js
import { shallowMount } from '@vue/test-utils' import Search from '~/components/Search' describe('components/Sarch.vue', () => { let wrapper beforeEach(() => { wrapper = shallowMount(Search) }) test('선택 가능한 연도의 개수가 일치합니다', () => { const year = wrapper.vm.filters.find(f => f.name === 'year') // 2021 - 1985 + 1 = 37 const yearLenth = new Date().getFullYear() - 1985 + 1 expect(year.items.length).toBe(yearLenth) }) })
'테스트 > 단위 테스트 (Vue)' 카테고리의 다른 글
단위 테스트 - Movie 스토어 (0) 2021.09.10 단위 테스트 - Movie 컴포넌트 (0) 2021.09.09 단위 테스트 - Header 컴포넌트 (0) 2021.09.07 단위 테스트 - mount 와 shallowMount (0) 2021.09.07 단위 테스트 - VTU 테스트 및 API (0) 2021.09.07