프로젝트 에서 jest 테스트 react native 구성 요 소 를 사용 하 는 방법 을 자세히 설명 합 니 다.
단원 테스트 란 각 단원 을 테스트 하 는 것 이다.일반적으로 함수,클래스 또는 단일 구성 요 소 를 대상 으로 하고 시스템 과 통합 과 관련 되 지 않 는 다.유닛 테스트 는 소프트웨어 테스트 의 기초 테스트 이다.Jest 는 주로 다음 과 같은 특징 이 있 습 니 다.
우 리 는 개발 과정 에서 테스트 도 구 를 사용 하지 않 아 도 스스로 코드 를 써 서 유닛 테스트 를 할 수 있 습 니 다.그러나 우리 의 코드 는 서로 호출 관 계 를 가지 고 있 습 니 다.테스트 과정 에서 우 리 는 유닛 이 상대 적 으로 독립 적 이 고 정상적으로 운행 되 기 를 원 합 니 다.테스트 되 는 함수 의 의존 함수 와 환경 에 대해 mock 을 하고 테스트 데이터 입력 을 해 야 합 니 다.테스트 수행 과 테스트 결과 검사 에 있어 많은 유사 성 이 존재 하 는데 테스트 도 구 는 바로 우리 에 게 이런 부분 에 편 의 를 제공 해 주 었 다.
준비 단계
rn 프로젝트 가 필요 합 니 다.여 기 는 제 개인 프로젝트ReactNative-ReduxSaga-TODO를 보 여 줍 니 다.
jest 설치
react-native init 명령 행 으로 만 든 rn 프로젝트 이 고,rn 버 전이 0.38 이상 이면 설치 할 필요 가 없습니다.잘 모 르 겠 으 면 봐 주세요.
package.json 파일 에 다음 코드 가 포함 되 어 있 는 지 여부:
// package.json
"scripts": {
"test": "jest"
},
"jest": {
"preset": "react-native"
}
없 으 면 npm i jest--save-dev 를 설치 하고 이 코드 를 package.json 파일 의 대응 위치 에 추가 합 니 다.위의 절차 가 완료 되면 npm run test 를 간단하게 실행 하여 jest 설정 이 성공 적 인지 테스트 합 니 다.그러나 우 리 는 테스트 용례 를 쓰 지 않 았 습 니 다.단말 기 는 no tests found 를 인쇄 합 니 다.설정 이 완료 되 었 습 니 다.
스냅숏 테스트
구성 요소 쓰기
import React from 'react';
import {
Text, View,
} from 'react-native';
import PropTypes from 'prop-types';
const PostArea = ({ title, text, color }) => (
<View style={{ backgroundColor: '#ddd', height: 100 }}>
<Text style={{ fontSize: 30 }}>{title}</Text>
<Text style={{ fontSize: 15, color }}>{text}</Text>
</View>
);
export default PostArea;
프로젝트 루트 디 렉 터 리 에서 찾기test__폴 더,이제 React 의 테스트 렌 더러 와 Jest 의 스냅 샷 기능 을 사용 하여 구성 요소 와 상호작용 을 하고 보 이 는 출력 을 캡 처 하여 스냅 샷 파일 을 만 듭 니 다.
// PostArea_test.js
import 'react-native';
import React from 'react';
import PostArea from '../js/Twitter/PostArea';
import renderer from 'react-test-renderer';
test('renders correctly', () => {
const tree = renderer.create(<PostArea title="title" text="text" color="red" />).toJSON();
expect(tree).toMatchSnapshot();
});
그리고 터미널 에서 npm run test 나 jest 를 실행 합 니 다.출력 할 것:PASS __tests__\PostArea_test.js (6.657s)
√ renders correctly (5553ms)
› 1 snapshot written.
Snapshot Summary
› 1 snapshot written in 1 test suite.
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 1 added, 1 total
Time: 8.198s
Ran all test suites.
또한,test 폴 더 아래 에서 스냅 샷 을 만 들 기 위 한 파일 을 출력 합 니 다.
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`renders correctly 1`] = `
<View
style={
Object {
"backgroundColor": "#ddd",
"height": 100,
}
}
>
<Text
accessible={true}
allowFontScaling={true}
disabled={false}
ellipsizeMode="tail"
style={
Object {
"fontSize": 30,
}
}
>
title
</Text>
<Text
accessible={true}
allowFontScaling={true}
disabled={false}
ellipsizeMode="tail"
style={
Object {
"color": "red",
"fontSize": 15,
}
}
>
text
</Text>
</View>
`;
원본 파일 수정다음 테스트 를 실행 할 때 보 여 주 는 출력 은 이전에 만 든 스냅 샷 과 비교 합 니 다.스냅 샷 은 코드 와 함께 제출 해 야 합 니 다.스냅 샷 테스트 가 실 패 했 을 때 의도 적 이거 나 의도 하지 않 은 변경 여 부 를 확인 해 야 합 니 다.예상 한 변화 와 마찬가지 로 jest-u 를 사용 하여 현재 스냅 샷 을 덮어 씁 니 다.
두 번 째 줄
<Text style={{ fontSize: 14, color }}>{text}</Text>
이때,우 리 는 다시 jest 를 운행 합 니 다.이 때 단말 기 는 오 류 를 던 지고 잘못된 위 치 를 지적 합 니 다.이 코드 는 우리 가 의도 적 으로 고 쳤 기 때문에,이때 jest-u 를 실행 하면 스냅 샷 이 덮어 집 니 다.제 스 트 를 실행 하면 틀 리 지 않 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
nginx 에서 사이트 아이콘 표시 설정전단 개발 환경: react:^16.4.1 webpack:^4.16.0 웹 팩 에 favicon. ico 설정 추가: nginx 는 ico 에 대한 지원 을 추가 합 니 다:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.