2012-05-21 1 views
0

RSpec 통합 테스트를 실패하려고합니다. 나는 다음과 같은 RSpec에 테스트를 실행하면Rspec을 사용하여 주어진 selector에 내용이 없으므로 (즉 비어 있음)

<article id="content"> 
    <section>  
    <p>There aren't any travel promotions... yet!</p> 
    </section> 
</article> 

가 :

describe SomeController do 
    render_views 

    describe "GET 'promotion_index'" do 
    it "should display an empty page given a blank page fragment and no promotions " do 
     get :promotion_index 
     response.should have_selector("#content section:first-of-type", :content => "") 
    end 
    end 
end 

그런 다음 테스트가

실패해야하지만 그렇지 않은 다음 HTML 조각을 감안할 때

. 선택기에 내용이 있는지 여부가 아름답게 전달됩니다.

분명히 말해서, 나는 <p> 콘텐츠가 존재하지 않는지 테스트하고 싶지 않습니다. <article id="content"><section /></article>에 내용이 전혀 없는지 테스트하고 싶습니다.

답변

0

자녀 태그가 없거나 중간에 텍스트가 없는지 확인 하시겠습니까? 나는 RSpec의 have_selector 메소드를 사용하지 않는다. 나는 또한 일할 수 없었다. 나는 단지 Nokogiri를 사용한다. 렌더링 된 객체를 Nokogiri :: HTML (렌더링)에 전달하고 테스트 할 HTML을 구문 분석하면됩니다. 그것은 아주 간단합니다.

사용해보기.

html = Nokogiri::HTML(rendered) 
html.xpath("//[@id='content']/section").each do |node| 
node.children_should be_empty? 
end 

그런 것. 나는 정확히 모르겠다.

+0

섹션 태그에 콘텐츠 또는 HTML 마크 업이 없는지 확인하고 싶습니다. Nokogiri를 사용하여 이것을하는 오이 단계의 예를 들어 줄 수 있습니까? 카피 바라가 네이티브로 할 수 없다면 그것은 가치가있을 것입니다. –

+0

예를 추가하여 편집 해 주셔서 감사합니다. 나는 그것을 시도 할 것이다. –

관련 문제