본문 바로가기

분류 전체보기167

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.
Testing - 테스트 가능한 코드 쓰기 전체 프로그램을 여러 줄의 코드가 있는 하나의 거대한 파일로 작성하는 것 보다 여러 개의 작은 모듈로 작성해야 조립된 전체를 테스트한 경우보다 더 철저하게 테스트할 수 있다. 테스트 가능한 코드란 모듈식 코드를 깔끔하게 작성하는 것을 말한다. 좀더 테스트 가능한 코드로 짜려면 비즈니스 로직(business logic) 과 앱 state (Redux, Mobx, Recoil) 으로 부터 View(React components)와 분리하는 거다. 이래야 react components와 의존성이 없어져서 비지니스 로직 테스트가 가능 해진다. 뭐 이론적으로는 ... 모든 로직과 데이터 component로부터 분리가 가능하다. 이렇게 해야 component들이 rendering 전용이 된다. state들은 모두 .. 2023. 2. 6.
Testing - 정적 분석 정적 분석 확인은 실행 없이 코드를 작성시 에러를 확인 하는 방법이다. react native는 ESLint(Linters)와 TypeScript(Type checking) 지원 한다. Linter 사용하지 않는 코드나, 공통 오류, 스타일에 맞지 않는 것들을 찾아 준다. Type Checking 함수로 전달할 구문이 기존 설계된 것과 일치 또는 맞지 않는 타입을 찾아준다. 2023. 2. 6.