Capybara 쿼리로 보기 유효성 검사
그러나 시스템 사양이 무겁습니다. 그들은 모든 것을 회전시켜야 합니다. 그들은 브라우저가 필요합니다. 사람이 여기저기 클릭하는 것보다 빠르지만 페이지가 로드되고 애니메이션이 완료되고 Promise가 해결될 때까지 기다려야 합니다. 가능하다면 view spec 을 사용하여 HTML에 데이터가 있는지 여부를 테스트하는 것이 훨씬 깔끔합니다. 템플릿에 필요한 것만 정확히 사용하고 적용 범위가 훨씬 덜 번거롭고 침습적이지 않도록 스터빙 또는 모킹만 하면 됩니다. 뷰 사양은 뷰 렌더링(및 문자열 반환)에 대해서만 걱정하면 되므로 전체 브라우저를 로드할 필요가 없습니다.
위에 링크된 Relish 문서에서도 많은 뷰 사양에 직선 텍스트 일치가 포함되어 있음을 알 수 있습니다. 더 구조화된 쿼리를 만드는 Rails'assert_select를 시도할 수 있지만 더 쉬운 솔루션이 있습니다.
Capybara.string
은 문자열을 쿼리 가능한 문서로 변환하는 매우 간단한 방법입니다. 특히 Capybara가 이미 설치되어 있는 경우(그리고 설치하지 않은 경우에도) 작업에는 오버헤드가 거의 없습니다.it "renders the account link when signed in" do
user = FactoryBot.build_stubbed(:user)
assign(:current_user, user)
render partial: "layouts/nav"
doc = Capybara.string(rendered)
expect(doc).to have_css("nav a[href='/users/#{user.id}']", text: "Account")
end
it "does not render the account link when signed out" do
assign(:current_user, nil)
render partial: "layouts/nav"
doc = Capybara.string(rendered)
expect(doc).to have_no_css("nav a", text: "Account")
end
모든 Capybara 매처에 액세스할 수 있으며 RSpec을 사용하면 사양을 매우 읽기 쉽게 만드는 멋진 변곡점을 얻을 수 있습니다. 그리고
render
는 이미 결과를 rendered
에 넣었기 때문에 Capybara.string
를 사용하여 사용 가능한 문서로 만드는 것이 매우 쉽습니다.
Reference
이 문제에 관하여(Capybara 쿼리로 보기 유효성 검사), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/thegnarco/validating-views-with-capybara-queries-50gj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)