2013-04-08 5 views
2

Может кто-нибудь объяснить мне, почему этот тест нельзя передать? Я просто тестирую статью с содержимым html. Ввиду я отображения содержимого через html_safeRspec - просмотр теста и html_safe

.article_content 
    = @article.content.html_safe 

в моем тесте у меня есть кое-что, как показано ниже:

context 'shows actual article' do 
     before(:all) { @article = FactoryGirl.build(:article, id: 1, 
     content: '<h2>aaaaa ddd bbb</h2>') } 

     before(:each) { render } 

    it 'show content' do 
     render.should have_selector('div.article_content',text: @article.content.html_safe) 
    end 

после этого мой тест не пройден:

Failure/Error: render.should have_selector('div.article_content',text: @article.content.html_safe) 
    Capybara::ExpectationNotMet: 
     expected to find css "div.article_content" with text "<h2>aaaaa ddd bbb</h2>" 
but there were no matches. Also found "\naaaaa ddd bbb\n", which matched the selector but not all filters. 

но когда я падение HTML теги из пробного теста содержимого объекта объекта. Я не знаю, почему html-теги являются chane в '\ n'. в браузере все выглядит хорошо.

ответ

1

has_selector/have_selector согласовани совпадает с текстом, который на самом деле видно - и текст, который отображается на странице aaaaa ddd bbb, а не <h2>aaaaa ddd bbb</h2>'

+0

нормально, я понимаю, спасибо. Но есть ли способ снять метки из построенного объекта, чтобы пройти тест? или я могу сделать это вручную. – Karol85

Смежные вопросы