swsnu / swppfall2019

31 stars 22 forks source link

[HW2] path 상의 파라미터 읽기 #118

Open jihoonrf opened 5 years ago

jihoonrf commented 5 years ago

어떤 컴포넌트의 경우 주소상의 파라미터, 예를 들면 /articles/:id 에서의 id값을 컴포넌트 상에서 참조하는 경우가 있는데요. 이러한 값을 테스트 코드에서는 어떻게 읽어 올 수 있을지 여쭙고 싶습니다.

예를 들어 this.props.match.params.id 같은 값을 테스트 코드에서 강제로 마운트하는 과정에서 넘겨주고 싶은데,

<Provider store={mockStore}>
        <ConnectedRouter history={history}>
          <Switch>
            <Route path="/" exact render={()=>{return <ArticleDetail match={{params:{id: ~~ }}}/>}} />
          </Switch>
        </ConnectedRouter>
      </Provider>

와 같은 식으로 넘겨주었을 때는 왜인지 의도한 대로 동작하지 않는 것 같습니다. 어떤 방법을 사용해야 할까요?

ktaebum commented 5 years ago

일단 강제로 넘겨줘서 해결을 할 수 있구요

어떻게 에러가 나는지도 알 수 있을까요??

jihoonrf commented 5 years ago

현재는 같은 값을 갖는 별도의 state를 만들고 setState를 하는 방식으로 우회적으로 해결한 상태이기는 한데 기존에 저 방식으로 시도할 때에는 에러가 난다기보다는 props가 잘 넘어가지 않는 것 처럼 보였습니다. props를 강제로 넘겨주는 정확한 방식이, 제가 위에서 작성한 방식이 맞는 것인가요?

ktaebum commented 5 years ago

네 일단 제가 알기로는 저렇게 강제로 넘겨서 테스트를 하면 되는 것으로 알고 있어요

ktaebum commented 5 years ago

@jihoonrf 혹시 아직 문제가 있으시다면 #121 을 참고하셔도 좋을 것 같습니다!