본문 바로가기

React Native12

Testing - 컴포넌트 테스트 React 컴포넌트는 app redering이 담당한다. 그리고 사용자가 직접적으로 React 컴포넌트의 산출물과 상호작용한다. 앱의 비즈니스 로직이 테스트 범위가 높고 정확한 경우 컴포넌트 테스트 없이도 사용자 UI가 손상될 수 있습니다. 컴포넌트 테스트는 단위와 통합 텓스트 모두에 해당 될수 있지만, React Native의 핵심 부분이기 때문에 별도로 다뤄야 한다. react component를 테스트하기 위해 다음 두 가지를 테스트할 수 있습니다 1. 상호작용(Interaction) : 사용자와 상호 작용할 때(예: 사용자가 버튼을 누를 때) component가 올바르게 작동하는지 확인한다. 2. 렌더링(Rendering) : React에서 사용하는 component 렌더 출력이 올바른지 확인합니.. 2023. 2. 6.
Testing - 통합 테스트 더 큰 소프트웨어 시스템을 작성할 때, 개별 소프트웨어 시스템은 서로 상호 작용해야 한다. 단위(unit) 테스트에서 단위(unit)가 다른 장치에 의존하는 경우, 때때로 장치를 가짜 장치로 대체하여 mocking사용하게 된다. 통합테스팅 실제 개별 장치는 결합되고(앱에서와 같이) 테스트되어 협력이 예상대로 작동하는지 확인한다. mocking 필요하지 않다는 말이 아니다. 오히려 단위 테스트보다 많이 필요하다. !!주의 통합 테스트가 항상 일관된 결과를 가져오지 않는다. 아래와 같은 이유 때문에 1. 외부 시스템을 사용 2. 다른 어플리케이션으로 네트워트 요청시 (날씨 서비스 api) 3. 모든 종류의 파일 또는 데이터베이스 입출력 실행 2023. 2. 6.
Testing - 단위 테스트 단위테스트는 각각의 함수나 클래스 처럼 코드의 작은단위를 테스트 하는 것이다. object 테스트시 많은 의존성을 가지고 있다. 종종 다음 구문으로 넘어가야 할때 mock 필요할 텐데 단위 테스트는 빠르게 쓰고 실행 할수 있다. 따라서 작업을 하면서 테스트가 통과되는지 여부에 대한 빠른 피드백을 얻을 수 있고 Jest에는 편집 중인 코드와 관련된 테스트를 지속적으로 실행할 수 있는 Watch mode. 옵션도 있다. - Mocking 가끔 objects 테스트시 외부 의존성을 가지고 있는 경우 실행을 위해 어떤 의존선을 교체하거나 Mocking 필요한 경우가 있다. 일반적으로 실제 object를 테스트에 사용하는 것이 모의 테스트보다 낫지만 불가능한 상황도 있다. 예를 들어: JS 장치 테스트가 Java.. 2023. 2. 6.
Testing - 테스트 쓰기 앞에서 테스트 가능한 코드 형태로 만들었다면 이제는 실제로 테스트 코드를 써볼때다. React Native는 기본적으로 Jest 테스팅 프레임워크를 탑재 하고 있다. 유닛테스트 방법 it('given a date in the past, colorForDueDate() returns red', () => { expect(colorForDueDate('2000-10-20')).toBe('red'); }); 테스트 설명은 it 함수안에 string으로 써준다. 테스트 설명을 명확하게 쓰도록 한다. 1. Given : 어떤 이전 조건 2. When : 테스팅 함수를 실행하기 위한 어떤 행동 3. Then : 기대하는 산출물 describe 함수는 jest에서 제공하는 테스트 구조화를 도와주는 함수이다. 하나의 .. 2023. 2. 6.