2015-11-11 3 views
0

Я пишу спецификации для моей формы.Как проверить, что форма успешно отправлена ​​с использованием Rspec?

В одном тесте, у меня есть RSpec вид для некоторых форм исходных данных с использованием меток:

expect(find_field("Title")).to_not be_nil 

Теперь я хотел бы знать, если форма была отправлена ​​правильно. Как я могу это сделать с помощью RSpec, , если вы не должны проверять базу данных от спецификации спецификации?

Например, что, если я опечатал атрибут name на входе Title? Ярлык по-прежнему будет найден по моему вызову find_field(), а спецификации контроллера будут иметь значение title в хеше.

ответ

0

В этом случае можно предположить, что для статьи потребовалось бы название, поэтому, если атрибут имени был ошибочно написан, создание статьи завершится неудачей, и вы попадете на страницу с ошибкой (также будет указан неперечисленный параметр создание по умолчанию в тестовом режиме с сильными параметрами). Если его поле не требуется для создания статьи, то предполагается, что информация отображается в приложении где-то и может быть проверена на этой странице.

Как в стороне вашего образца ожидать будет читать гораздо яснее, если переписать в виде

expect(page).to have_field('Title') 
0

Есть множество вариантов решения этой проблемы:

expect(page).to have_field('Title') 

expect(page).to have_css('#someSelector') 

expect(current_path).to eq article_path (for example) 

expect(page).to have_content "ABC" (i.e. some content which will be rendered) 

водосвинка ридй на Github действительно хорошие один полный простых примеров: .

+0

Спасибо, но только последний действительно полезен здесь ... Я знаю, что у него есть поле «Заголовок», так как я его заполняю, и поиск селектора действительно не помогает. Путь может быть правильным, но мне не интересно, был ли он представлен вообще, но был ли сохранен заголовок, который был введен (если это не требуется). Я думаю, что моя проблема с последним заключается в том, что он может стать сложным, если данные не все отображаются на одной странице! – you786

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