강의

멘토링

커뮤니티

Inflearn Community Q&A

yeonsoo98461913's profile image
yeonsoo98461913

asked

Front-end testing basics in 2 hours

How to test recoil

안녕하세요. 질문 있습니다.

Written on

·

412

2

섹션3 recoil을 테스트하는 방법 3:50에
cy.url().should('include','/');
를 통해서 root page로 잘 이동하는지 확인한다고 하신부분에서,

'/'는 어떤 페이지에서든 include가 되어 테스트가 통과될것 같은데 혹시 rootpage를 검증하기위한 다른 방법은 없을까요?

reactjest소프트웨어-테스트Cypressstorybookchatgpt

Answer 3

3

jasonkang님의 프로필 이미지
jasonkang
Instructor

연수님 안녕하세요! 말씀하신 것처럼 그런 문제가 발생할 수 있겠네요. 심지어 url에도 http://, https:/// 가 포함되어 있어서 문제가 발생할 수 있을 것 같습니다. 저도 자료를 수정해야겠네요.

이런 경우에는 pathname을 활용해야 하는데요, 아래와 같이 수정해서 테스트하시면 됩니다.

cy.url().should((url) => {
  const currentUrl = new URL(url);
  expect(currentUrl.pathname).to.equal("/");
});

좋은 질문 다시한번 감사드립니다!

위 코드에서 사용되는 expect는

import { expect } from "chai";

가 필요한건가요 ?

jasonkang님의 프로필 이미지
jasonkang
Instructor

필요없습니다!

ts상에서 오류가 나서.. chai에서 import해야 사라지더라구요.. 제가 조금 다르게 하다가 그랬나 보네요..

jasonkang님의 프로필 이미지
jasonkang
Instructor

tsconfig.json 설정을 한번 확인해보시면 좋을 것 같습니다!

"include" 에 cypress로 작성한 테스트코드들이 포함되어 있는지 확인해보세요~

2

저 같은 경우에는 to.equal 메서드를 쓸 때 to 타입이 없다고 오류가 떠서 to.equal 말고 다른 방법을 찾다보니 cy.location()에 매개변수로 pathname을 주면 pathname 부분만 얻어올 수 있는걸 알게됐습니다. 그래서 expect 없이 should로 비교가 가능했습니다

cy.location("pathname").should("eq", "/");
jasonkang님의 프로필 이미지
jasonkang
Instructor

감사합니다 정우님!

1

yeonsoo98461913님의 프로필 이미지
yeonsoo98461913
Questioner

감사합니다 :)

yeonsoo98461913's profile image
yeonsoo98461913

asked

Ask a question