inflearn logo
강의

Course

Instructor

Learn React Testing by Following [Updated November 2023]

Creating the overall structure

스타일 컴포넌트 테스트 방법

438

malcomex

2 asked

0

강의에선 일반 html/css를 사용하고 data-testid를 사용해 엘리먼트를 선택하는데
styled-component를 사용한다면 어떤 방식으로 선택하고 테스트하는게 권장되는 방법일까요?

react 웹앱 React-Context jest 소프트웨어-테스트 styled-component

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴이에요.

styled-components를 사용하면 엘리먼트를 선택하는 방식이 조금 다를 수 있습니다. 일반적으로는 class나 data-testid를 사용하여 엘리먼트를 선택하는 방식을 대신하여 styled-components에서는 다른 방법을 권장합니다.

styled-components에서는 엘리먼트를 선택하기 위해 props를 활용하는 것을 권장하고 있습니다. 예를 들어, 버튼 엘리먼트를 스타일링하기 위해 다음과 같은 코드를 작성할 수 있습니다.

import styled from 'styled-components';

const Button = styled.button`
  background-color: ${props => props.primary ? 'blue' : 'red'};
  color: white;
  /* 스타일링 코드 추가 */
`;

/* ... */

render(
  <Button primary>Primary Button</Button>
);

위의 예시에서는 Button 컴포넌트에 primary props가 전달되면 배경 색상이 파란색으로, 아닌 경우에는 빨간색으로 설정됩니다. 이렇게 props를 활용하여 스타일을 동적으로 변경할 수 있습니다.

또한, 테스트를 위해 styled-components 라이브러리는 jest-styled-components와 같은 특별한 라이브러리를 사용하는 것을 추천합니다. 이 라이브러리를 사용하면 Jest와 함께 스타일드 컴포넌트를 테스트할 수 있습니다.

자세한 내용은 jest-styled-components 라이브러리의 공식 문서를 참고해주세요. 이를 통해 styled-components를 사용한 컴포넌트의 스타일 테스트를 쉽게 수행할 수 있습니다.

만약 이에 대해 더 궁금하신 점이나 다른 질문이 있다면 언제든지 물어보세요! 요.

제공해주신 코드를 vscode에서 켜도 eslint가 안됩니다.

0

278

2

ERROR

0

209

1

테스트 시간을 단축할 수 있는 방법에 대하여 문의드립니다.

0

360

1

useState 배열값 변경의 경우 테스트 멈춤

0

411

1

test was not wrapped in act관련 질문

0

290

2

안녕하세요! 로딩 상태 테스트에 관련된 질문입니다.

0

394

1

강의 관련 내용 github 업로드 질문

0

307

1

이미지가 안보인다 하셔서 다시 질문드립니다.

0

414

2

Test Fail이 발생합니다 ㅠㅠ

0

356

1

msw 에러

0

632

1

toHaveTextContent 에러

0

442

1

msw안돼는사람

0

579

1

This could be because the text is broken up by multiple elements. 에러

0

1716

2

Type.test.js파일에 궁금한점이 생겼습니다

0

351

1

28강 수강 중 JSX 작성 방법에 대해 궁금해져서 질문 남깁니다!

0

398

1

toHaveTextContent 에서 에러가 자꾸 나는데 아무리 찾아도 잘 모르겠습니다.

0

610

2

aria-*

0

438

1

This XML file does not appear to have any style information associated with it. The document tree is shown below. 에러

1

14089

1

컴포넌트 props내려줄때 코드는 어떻게 해야하나요

0

248

0

es6 jest 미지원 오류 문의

0

857

1

test 여러 개 실행 - fail 발생

0

292

1

useMemo

0

282

1

axios 1.1.2 버전 issue ( SyntaxError: Cannot use import statement outside a module)

4

2223

5

2가지 질문사항입니다!

0

310

2