-
단위 테스트 - Movie 컴포넌트테스트/단위 테스트 (Vue) 2021. 9. 9. 10:22
단위 테스트 - Movie 컴포넌트
Movie.vue
... <script> import { mapState } from 'vuex' import Loader from '~/components/Loader' export default { components: { Loader }, data() { return { imageLoading: true } }, computed: { ...mapState('movie', [ 'theMovie', 'loading' ]) }, created() { console.log(this.$route) this.$store.dispatch('movie/searchMovieWithId', { // movie/tt123456 id: this.$route.params.id }) }, methods: { requestDiffSizeImage(url, size = 700) { if (!url || url === 'N/A') { this.imageLoading = false return '' } const src = url.replace('SX300', `SX${size}`) this.$loadImage(src) .then(() => { this.imageLoading = false }) return src } } } </script> ...
Movie.test.js
import { shallowMount } from '@vue/test-utils' import store from '~/store' import router from '~/routes' import loadImage from '~/plugins/loadImage' import Movie from '~/routes/Movie' describe('routes/Movie.vue', () => { let wrapper beforeEach(async () => { window.scrollTo = jest.fn() // 영화 상세 페이지 이동 router.push('/movie/tt1234567') // 페이지 완료까지 기다림 await router.isReady() wrapper = shallowMount(Movie, { global: { plugins: [ store, router, loadImage ] } }) }) test('최초 접속한 URL의 파라미터를 확인', () => { expect(wrapper.vm.$route.params.id).toBe('tt1234567') }) test('지정한 이미지 크기로 URL을 변경', () => { const url = 'https://google.com/sample_image_SX300.jpg' expect(wrapper.vm.requestDiffSizeImage(url)).toContain('SX700') expect(wrapper.vm.requestDiffSizeImage(url, 900)).toContain('SX900') }) test('정상적인 이미지 주소가 아닌 경우 빈 문자를 반환', () => { expect(wrapper.vm.requestDiffSizeImage()).toBe('') expect(wrapper.vm.requestDiffSizeImage('N/A')).toBe('') }) })
'테스트 > 단위 테스트 (Vue)' 카테고리의 다른 글
단위 테스트 - Movie 스토어 (0) 2021.09.10 단위 테스트 - Search 컴포넌트 (0) 2021.09.08 단위 테스트 - Header 컴포넌트 (0) 2021.09.07 단위 테스트 - mount 와 shallowMount (0) 2021.09.07 단위 테스트 - VTU 테스트 및 API (0) 2021.09.07