inflearn logo
강의

講義

知識共有

実務に直接適用するフロントエンドテスト - パート2。テスト深化:視覚的回帰・E2Eテスト

3.2。ストーリーを書く

AvailableUsers

40

Coi

投稿した質問数 8

0

시각적 회귀 테스트 강의의 Storybook 코드에서 play 함수 안에 matcher를 넣지 않고 userEvent.click(...)만 사용한 이유가 궁금합니다.

import { userEvent, within } from '@storybook/testing-library';

import AvailableUsers from '@/pages/login/components/AvailableUsers';

export default {
  component: AvailableUsers,
  title: '로그인/사용자 리스트',
};

export const Folded = {
  name: '접힌 상태',
};

export const Expanded = {
  name: '펼친 상태',
  play: async ({ canvasElement }) => {
    const canvas = within(canvasElement);

    await userEvent.click(canvas.getByText('⚠️ 사용 가능한 유저 리스트'));
  },
};

 

제가 이해한 바로는, 이 스토리는 storybook에서 아코디언이 펼쳐진 시각적 상태 변화를 보여주기 위한 용도이고,

실제 기능 로직 검증은 Vitest에서 별도의 테스트 코드로 작성하는 방향이라고 생각했습니다.
1. 여기서 play 안에 matcher를 넣지 않은 것은 Storybook을 시각적 상태 확인용으로 사용하려는 의도인가요?

2. 그리고 이 컴포넌트의 동작 검증은 Storybook이 아니라 Vitest에서 담당하도록 역할을 나눈 것으로 이해하면 될까요?
3. 실무에서는 보통 storybook을 어디까지 작성하는지 궁금합니다. - 물론 회사마다 다르겠지만, 강의해주시는 강사님 기준으로 의견을 듣고 싶습니다.

javascript tdd 소프트웨어-테스트 vitest e2e chromatic

回答 1

1

hanjungv

@Coi님 답변 늦어 죄송합니다 ㅠㅠ

1. 여기서 play 안에 matcher를 넣지 않은 것은 Storybook을 시각적 상태 확인용으로 사용하려는 의도인가요? + 2. 그리고 이 컴포넌트의 동작 검증은 Storybook이 아니라 Vitest에서 담당하도록 역할을 나눈 것으로 이해하면 될까요?

-> 넵 맞습니다! 시각적으로 검증하기 위해 활용했다라고만 이해해주시면 됩니다. 최근 트렌드가 변함에 따라 해당 부분에 대한 테스트를 스토리북에서 진행하는것도 가능해졌다고 이해하고 있는데요. 브라우저 기반의 테스트 코드 도구들도 많이 생겼구요. 결국 목적에 따라 각각 어떤 부분을 검증할지, 어디서 작성할지 명확하게 한다면 관리하기 편한곳에서 운영하셔도 됩니다.

3. 실무에서는 보통 storybook을 어디까지 작성하는지 궁금합니다. - 물론 회사마다 다르겠지만, 강의해주시는 강사님 기준으로 의견을 듣고 싶습니다.

-> 일반적으로 실무에서는 디자인 시스템을 운영한다면 해당 부분에 대해 전반적으로 운영을 하는 편이고, 그렇지 않다면 공통 컴포넌트들에 대한 관리 목적으로 그리고 시각적 테스트를 진행하면 해당 시나리오들에 대해서만 운영을 하는 편인것 같아요! 주로 스토리북을 테스트 관점에서도 운영할 수 있지만 여러 부서들 간의 커뮤니케이션 도구로 실제 결과를 보여주는 관점에서 사용하는 경우도 많이 있어서요. 해당 부분에 대해서도 고민해보시면 좋을것 같습니다!

imagesLoaded에 관한 질문

0

6

2

useEffect와 lifecycle문의

0

8

1

프론트엔드 학습 수준 문의

0

25

2

리액트 챕터별 코드에서 eslint 설정파일이 없어요

0

41

2

UserService, CertificationService 책임 분리 기준 질문

0

22

1

최근 코테, 과제 테스트 트렌드

0

57

2

lucide react 아이콘 설치

0

35

2

17강 zustand store 서버에서 생성

1

30

1

레이어드 아키텍처에서 도메인 중심 패키지 구조를 적용하거나 변화하는 시점이 있을까요?

1

35

2

문의관련 문의

0

37

2

next.js 를 2대이상 실행하는 경우 제공하는 cache 기능들은 어떻게 되나요?

0

47

2

76. 전문성 더하기: 놓치면 아쉬운 관련 기술들 수업 자료가 없어요.

0

41

2

ai 도구 질문

0

30

1

저는 왜 콘솔에서 props가 한 줄만 찍히나요?

0

44

1

렌더링 차단 리소스 javascript 실행에 관련해서 질문 있습니다.

0

44

2

POJO에서 Spring Test로 넘어갈 때 누락(해결됨)

0

31

1

storybook/ addon react-router-dom

0

42

1

e2e 테스트 CI , 서버비용

0

71

1

Retry-ability와 커스텀 커맨드, 커스텀 쿼리 질문

0

148

1

브랜치 git clone 질문

0

131

1

unit-test-example 브랜치에서 'Test result not found.' 가 뜹니다...

0

178

1

4.3 테스트 질문 입니다

0

191

1

5.2 테스트에서 상품 이름 사용, 로그인 세션 질문

1

233

1

5.3 cy.intercept 질문

0

178

1