2012-02-04 4 views
1

У меня есть огурец определение шага, как этот методЧто не так в моем тестовом коде?

find("div#cycle_form table").should have_content(append_row_to_table_tag("day_num", "hour", "hour_night")) 

append_row_to_table_tag возвращает строку

"<tr><td>data</td><td>data</td><td>data</td><td>data</td><td>data</td></tr>" 

и вид

%div{:id => "cycle_form", :class=>"list_form"} 
    = link_to("Add",nil,:id=>"create_row_cycle")#,:onclick=>"$('div#cycle_form table').append('#{append_row_to_table_tag("day_num", "hour", "hour_night")}');return false;", :href=>"") 
    %table 
    %th day 
    %th hour 
    %th hour_night 
    %th edit_button 
    %th delete_button 

огурец не удается

expected there to be content "<tr><td>data</td><td>data</td><td>data</td><td>data</td> 
<td>data</td></tr>" in "day hour hour_night edit_button delete_button\ndata data data 
data data" (RSpec::Expectations::ExpectationNotMetError) 

Как я могу проверить добавление элемента на страницу с помощью JavaScript с capybara?

ответ

0

Capybara's have_content метод имеет дело с текстовым содержимым - не разметкой HTML. В общем, Capybara работает поверх DOM, поэтому вам лучше использовать его селектора для запроса отдельных элементов таблицы, против которых вы хотите утверждать.

Если вы хотите сравнить содержимое таблицы Cucumber с таблицей HTML, я нашел a nice example.

Если вы действительно хотите проверить, что определенная разметка содержится на странице, я считаю, что вы можете перейти к собственному представлению Nokogiri и получить доступ к HTML таким образом или даже утверждать против page.body, чтобы получить полный исходный HTML-код, но я рассмотрите оба этих вопроса в качестве крайней меры.

0

Вы можете использовать драгоценный камень как Жасмин, чтобы проверить Javascript. Here - хороший скринкаст, показывающий, как он работает.

+0

Спасибо за повтор, Skydreamer! Я узнал огурец с капибарой .. Как можно испытать с каппибарой? и почему я получаю это уведомление «ожидается, что будет контент» – dilshod

+0

Проблема решена с помощью find ("div # cycle_form table"). text.should have_content (append_row_to_table_tag ("day_num", "hour", "hour_night")) – dilshod

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