1
私は次のテストがありますSimple Formからのエラーメッセージを確認するためにCapybaraを使用するには?
b.use :full_error, wrap_with: { tag: 'span', class: 'help-block' }
とモデルpost
.RB:config/initializers/simple_form_bootstrap.rb
はこれを持って、完全なエラーメッセージを持つために
<%= simple_form_for(post) do |f| %>
# post passed to simple_form_for is @post
<%= f.input :title %>
<%= f.input :content %>
<%= f.button :submit, class: 'button' %>
<% end %>
:
scenario 'with invalid attributes' do
click_button 'Create Post'
save_and_open_page
expect(page).to have_content 'Post has not been created.'
expect(page).to have_content 'Title can\'t be blank.'
expect(page).to have_content 'Content can\'t be blank.'
end
と_form.html.erb
を:
class Post < ActiveRecord::Base
validates :title, :content, presence: true
end
私はrspec
を実行して、私が取得:
expected to find text "Title can't be blank." in "Post has not been created. new post * TitleTitle can't be blank * ContentContent can't be blank"
save_and_open_page
ショー:
<div class="form-group string required post_title has-error">
<label class="string required control-label" for="post_title">
<abbr title="required">*</abbr> Title
</label>
<input class="string required form-control" type="text" value="" name="post[title]" id="post_title" />
<span class="help-block">Title can't be blank</span>
</div>
はなぜカピバラは<label>
と<span>
の間に空白を考慮していませんか?
あなたはカピバラの仕様で完全停止しています:「タイトルは空白ではありません。」というエラーメッセージは、フルストップがないことを示しています: 'TitleTitleは空白にすることはできません'あなたの仕様からそれを削除し、それは通過する必要があります。 –
ああ、私!はい、そうでした。私はメッセージの最後の期間を見ていませんでした。私は 'TitleTitle can not ... 'しか見ることができませんでした。ありがとう!私はあなたの答えを受け入れることができるようにこれにお答えしたいですか? :) – user3097405
heh - 私は同じことを自分でやりました。それが私がそれを探すのを知っている理由です;) –