我正在尝试使用mongomapper在rails 2.3.5 app上实现shoulda单元测试。
到目前为止我已经:
rake gems:install
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,而且我很擅长测试自己。
答案 0 :(得分:2)
在更深入地研究之后,我意识到出了什么问题。
Shoulda的宏(should_belong_to
,should_have_many
,should_validate_presence_of
)仅适用于ActiveRecord - 毕竟它们是在Shoulda::ActiveRecord::Macros上定义的。
如果我要使用它们,我将不得不为Shoulda :: MongoMapper :: Macros实现宏。我不确定这是否值得。
我希望这有助于任何人找到这篇文章。