私はRails/rspecの初心者です。次のデータモデルを設定しました(抜粋)
t.string :foo
t.string :bar
t.date :future_date
このRailsチュートリアルのマイクロポストと同様に、ユーザーに関連付けられたこれらのエントリを作成するためのWebフォームがあります。Webフォームは次のようになります(抜粋):
<%= f.label :foo %>
<%= f.text_field :foo %>
<%= f.label :bar %>
<%= f.text_field :bar %>
<%= f.date_select :future_date %>
投稿を開始する[作成]ボタンがあります。Railsコンソールを介してすべてが正常に機能しているようです。Webフォームが正しく表示され、エントリが正しく作成され、データベースに正しく入力されています。ただし、rspecを実行すると、
NoMethodError:
undefined method `call' for #<RSpec::Expectations::ExpectationTarget:0x0000000492b7c0>
関連するリクエストの仕様(抜粋)は次のとおりです。
it "should not create a foobar" do
expect { click_button "Create" }.should_not change(Foobar, :count)
end
つまり、情報を入力せずに[作成]をクリックします。後で情報を入力した同様の例がありますが、ほぼ同じclick_buttonで、このエラーもスローされます(.by(1)を変更する必要があります)。私は、future_dateを除いて、非常によく似ているユーザー作成部分(何も入力されていない/何かが入力されている)に対して同様のclick_buttonテストが正常に機能しています。それに加えて、私が無限のグーグルで遭遇した何かは、日付が何らかの理由で、おそらくバージョンの不一致か何かのせいであると私に信じさせます。特に実際の使用ではすべてが正常に機能しているためです。これは、ruby 1.9.3、Rails 3.2.6、およびRspec2.11.1で使用されます。どんな洞察も大歓迎です。