-
localStorage mocking 테스트파일기타 2021. 12. 2. 18:40반응형
로그아웃시에 localStorage 에서 토큰을 지우는 작업이 되어야하는 부분 테스트 코드를 작성하는데
const localStorageSpy = jest.spyOn(window.localStorage,'removeItem'); userEvent.click(screen.getByText('logout')); expect(localStorageSpy).toBeCalledWith('_token') // localStorage.removeItem('_token') 이 작동되나 확인하는코드
근데 이게 테스트가 안됬다 왜냐면 window.localStorage 는 removeItem 이라는 method를 가지고 있지 않기때문이다 ㅎㅎ
spyOn 으로 mocking 할때는 jest.spyOn( 객체 , '메서드네임'); 해서 써야하는데 콘솔을 찍어보자
window.localStorage 대신에
Object.getPrototypeOf(window.localStorage) , window.localStorage.__proto__ , Storage.prototype
이걸로 쓰면 테스트 잘된다
다음에 prototype 이랑 webStorage 글스기
'기타' 카테고리의 다른 글
iframe pre render 가능한가요? (0) 2021.12.17 git stash 로 작업한내용 브랜치 옮기기 (0) 2021.12.16 페이지 이동 (0) 2021.12.02 call , prototype (0) 2021.12.02 nextjs mocking (testing library, jest) (0) 2021.12.01