2

アプリ: Sinatra + ActiveRecord
ベスト プラクティスを使用して関連付けの存在をテストしようとしています。
私は Shoulda の構文がとても気に入っています。

    describe Bar do
      it { should belong_to(:foo) }
    end

ただし、RSpec はbelong_toメソッドを見つけることができないようです。

    1) ResOutcome 
       Failure/Error: it { should belong_to(:foo) }
       NoMethodError:
         undefined method `belong_to' for #<RSpec::Core::ExampleGroup::Nested_1:0x00000103ac6760>
       # ./spec/models/bar_spec.rb:48:in `block (2 levels) in <top (required)>'

ヒントはありますか?
Shoulda アソシエーション テストは Rails アプリ (rspec-rails を使用) でのみ機能しますか?
ありがとうございました。

4

4 に答える 4

1

shoulda-matchersGemfile に gem を 追加しましたか? https://github.com/thinkbot/shoulda-matchers


アップデート:

構成に追加require 'shoulda/matchersしますspec_helper.rb

于 2012-06-15T08:51:06.330 に答える
0

RSpecを使用していませんが、同様の問題がありました。ただし、まだ Sinatra と ActiveRecord を使用しています。

私の場合、テストクラスを継承から継承に変更する必要がありましActiveSupport::TestCaseTest::Unit::TestCase

ActiveSupport::TestCaseとにかく機能を使用していなかったので、問題なく動作しました。これは実際にはあなたのユースケースではないことは承知していますが、おそらくそれはあなたを正しい方向に向け、 を使用している他の誰かを助けるTest::Unit.

于 2012-11-21T17:14:42.040 に答える