【Vue/Nuxt】-테스트편(컴퍼넌트)- 날씨 API를 사용해 일대로 프런트를 실장해 본다
전제 조건
【Vue/Nuxt】-Vuex편- 날씨 API를 사용해 한가지 프런트를 실장해 본다
위 기사에서 날씨 API 데이터를 받았습니다.
【Vue/Nuxt】-컴포넌트편- 날씨 API를 사용해 한가지 프런트를 구현해 본다
상기 기사에서 컴포넌트, 화면 완성
테스트를 써라!
그 전에 테스트 도구(Jest/vue-test-utils)
jest
자바스크립트 테스트 프레임워크(Facebook제)
Jest · 🃏 편안한 자바 스크립트 테스트
vue-test-utils
Vue.js를 위한 공식 단위 테스트 라이브러리
컴포넌트만의 테스트 등도 가능
가이드 | Vue Test Utils
잠깐, 테스트를 쓴 적이 없어.
이 기사를 알기 쉽기 때문에 꼭 봐!
프런트 엔드에 테스트 도입
컴포넌트 테스트 작성
이전 기사에서 만든
ForcastCard
구성 요소를 테스트합니다.본체의 코드는 여기 → 【Vue/Nuxt】-컴포넌트편- 날씨 API를 사용해 한가지 프런트를 구현해 본다
디렉토리 구성은 다음과 같습니다.
props 템플릿 파일 만들기
props-template.js
export default {
forecast: {
dateLabel: `今日`,
telop: `晴のち曇`,
image: {
url: `http://weather.livedoor.com/img/icon/5.gif`,
title: `晴のち曇`
}
}
};
index.test.js
import { shallowMount } from '@vue/test-utils';
import { getMountTemplate } from '~/utils/test/component-test-util';
import propsTemplate from './props-template';
import TargetComponent from './index';
describe('コンポーネント', () => {
test('props', () => {
const wrapper = shallowMount(TargetComponent, getMountTemplate(propsTemplate));
expect(wrapper.find('.forcast-list__title').text()).toBe(propsTemplate.forecast.dateLabel);
expect(wrapper.find('.forcast-list__telop').text()).toBe(propsTemplate.forecast.telop);
expect(wrapper.find('.forcast-list__image').attributes().src).toBe(propsTemplate.forecast.image.url);
});
});
실제로 테스트하고 있는 부분은
expect
입니다.이번에는 3건의 테스트를 쓰고 있습니다.
언어화하면 이런 느낌
①forcast-list_title 클래스를 가지는 DOM 엘리먼트를 지정
(wrapper.find('.forcast-list__title')
② 테스트할 요소의 텍스트는 propsTemplate.forecast.dateLabel
.text()).toBe(propsTemplate.forecast.dateLabel);
propsTemplate.forecast는 props-template.js에 쓰여진
dateLabel: '今日'
부분입니다.즉, forcast-list_title 클래스를 가진 요소의 내용이 '오늘'임을 테스트하고 있습니다.
무사히 다녔다 🎉
이것을 알면, 나머지 2건도 알 수 있다! 속성을 테스트하고 싶을 때는
.attributes()
를 사용합니다.그 밖에도 테스트하고 싶은 항목에 따라 매번 Jest의 공식을 확인해보세요~
처음 알면 다음 번부터 구구리 힘이 붙을 것 💪
다음에 Vuex 스토어 테스트 기사를 씁니다.
【Vue/Nuxt】-테스트편(스토어)- 날씨 API를 사용해 한가지 프런트를 실장해 본다
Reference
이 문제에 관하여(【Vue/Nuxt】-테스트편(컴퍼넌트)- 날씨 API를 사용해 일대로 프런트를 실장해 본다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/su_mi1228/items/eca77ea3cc72d53c4e9a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)