강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của yeonsoo98461913
yeonsoo98461913

câu hỏi đã được viết

Khái niệm cơ bản về kiểm thử front-end trong 2 giờ

Cách kiểm tra recoil

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

Viết

·

425

2

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

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

reactjest소프트웨어-테스트Cypressstorybookchatgpt

Câu trả lời 3

3

jasonkang님의 프로필 이미지
jasonkang
Người chia sẻ kiến thức

연수님 안녕하세요! 말씀하신 것처럼 그런 문제가 발생할 수 있겠네요. 심지어 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
Người chia sẻ kiến thức

필요없습니다!

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

jasonkang님의 프로필 이미지
jasonkang
Người chia sẻ kiến thức

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

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

2

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

cy.location("pathname").should("eq", "/");
jasonkang님의 프로필 이미지
jasonkang
Người chia sẻ kiến thức

감사합니다 정우님!

1

yeonsoo98461913님의 프로필 이미지
yeonsoo98461913
Người đặt câu hỏi

감사합니다 :)

Hình ảnh hồ sơ của yeonsoo98461913
yeonsoo98461913

câu hỏi đã được viết

Đặt câu hỏi