1

mongomapper を使用して、Rails 2.3.5 アプリに shoulda 単体テストを実装しようとしています。

これまでのところ:

  1. mongomapper を使用する Rails アプリを構成しました (アプリは動作します)
  2. 私の宝石にshouldaを追加し、それをインストールしましたrake gems:install
  3. config.frameworks -= [ :active_record, :active_resource] を追加したconfig/environment.rbのでActiveRecord使用しません。

私のモデルは次のようになります。

class Account
  include MongoMapper::Document

  key :name, String, :required => true
  key :description, String
  key :company_id, ObjectId
  key :_type, String

  belongs_to :company
  many :operations

end

そのモデルの私のテストはこれです:

class AccountTest < Test::Unit::TestCase

  should_belong_to :company
  should_have_many :operations

  should_validate_presence_of :name

end

最初に失敗しますshould_belong_to

./test/unit/account_test.rb:3: undefined method `should_belong_to' for AccountTest:Class (NoMethodError)

これが機能しない理由はありますか?shouldaとは違うものを試してみるべきですか?

shoulda を使用するのはこれが初めてであり、それ自体をテストするのはかなり新しいことを指摘しなければなりません。

4

1 に答える 1

2

shoulda をもっと深く研究した後、私は何が間違っていたのかを理解しました。

Shoulda のマクロ ( should_belong_toshould_have_manyshould_validate_presence_of) は ActiveRecord でのみ使用できます。つまり、これらはShoulda::ActiveRecord::Macrosで定義されています。

それらを使用する場合は、Shoulda::MongoMapper::Macros のマクロを実装する必要があります。それだけの価値があるかどうかはわかりません。

これが、この投稿を見つけた人に役立つことを願っています。

于 2010-06-02T18:02:04.650 に答える