2016-08-27 9 views
0

На моем сайте были десятки экземпляров «link_to». Я решил изменить большинство из них на «button_to» для лучшего внешнего вида. Линии моего теста, которые использовали для проверки наличия этих ссылок, уже не помогают.Rails: Могу ли я проверить наличие кнопки_to?

assert_select "a", :href => user_path(@seminar.teacher), text: "Your Teacher Profile", count: 2 

тест не работает корректно с

assert_select "button", etc... 

Есть ли способ настроить тест, чтобы найти экземпляры button_to? Из моих первоначальных поисков кажется, что нет.

Я также рассматриваю возможность просто отрезать эти строки от тестов, так как я читал в другой статье, что просто тестирование на наличие элементов отображения - не очень полезный способ использования тестов на рельсах.

Заранее благодарим за понимание!

+0

Вы также можете добавить немного стиля в LINK_TO выглядеть кнопки, как. (Но если вы добавите button_to, он будет делать запрос по умолчанию по умолчанию, когда по умолчанию link_to действительно получает запрос.) –

+0

Сначала я попробовал стилизацию. Но я боролся с появлением ссылки после ее посещения. Предлагаете ли вы вернуться к ссылке «link_to», если я смогу правильно работать с посетившим стилем? –

ответ

1

Я бы удалил те тесты, которые просто проверяют наличие ссылки. Было бы лучше написать тесты, которые нажимают на эти кнопки и проверять, что происходит после нажатия кнопки. Пользователи больше заботятся о том, что происходит, когда нажимается кнопка, чем наличие кнопки на странице.

+0

Я искал способы получить мои тесты для имитации нажатия кнопок на страницах. Вы узнали о статье или учебном пособии, посвященных этому типу тестирования? Или вы знаете синтаксис для такого теста, чтобы я мог искать статьи? –

+0

Capybara - популярный инструмент для тестирования этого – kcdragon

+0

Да. Капибара похожа на то, что я ищу. Спасибо! –

1

Вот один из способов протестировать наличие кнопки button_to с использованием среды тестирования Rails по умолчанию MiniTest. В этом примере есть кнопка на шоу странице члена, чтобы изменить свой статус членства в неактивное:

<%= button_to 'Change status to Inactive', membership_path(@membership), method: :patch, 
    params: { 'membership[status]' => 'Inactive'} %> 

Если вы проверяете ваш взгляд в веб-браузере, чтобы увидеть HTML (в Chrome, щелкните правой кнопкой мыши элемент кнопки затем выберите «Осмотреть»), вы увидите, что button_to на самом деле является формой. Таким образом, вы можете проверить наличие элемента формы с свойством action, равным определенному члену_пакета.

membership = Membership.first 
assert_select 'form[action=?]', membership_path(membership.id) 

Если вы хотите, чтобы также проверить, что текст кнопки присутствует, то сделать блочную

membership = Membership.first 
assert_select 'form[action=?]', membership_path(membership.id) do 
    assert_select 'input[value=?]', 'Change status to Inactive' 
end 

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

  • Нет связанных вопросов^_^