Mongomapper - 在轨道上使用shoulda进行单元测试2.3.5

时间:2010-06-02 12:55:00

标签: ruby-on-rails tdd shoulda mongomapper

我正在尝试使用mongomapper在rails 2.3.5 app上实现shoulda单元测试。

到目前为止我已经:

  1. 配置了使用mongomapper的rails应用程序(应用程序可以运行)
  2. 为我的宝石添加了shoulda,并使用rake gems:install
  3. 进行了安装
  4. config.frameworks -= [ :active_record, :active_resource]添加到config/environment.rb,因此未使用ActiveRecord
  5. 我的模特看起来像这样:

    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,而且我很擅长测试自己。

1 个答案:

答案 0 :(得分:2)

在更深入地研究之后,我意识到出了什么问题。

Shoulda的宏(should_belong_toshould_have_manyshould_validate_presence_of)仅适用于ActiveRecord - 毕竟它们是在Shoulda::ActiveRecord::Macros上定义的。

如果我要使用它们,我将不得不为Shoulda :: MongoMapper :: Macros实现宏。我不确定这是否值得。

我希望这有助于任何人找到这篇文章。

相关问题