代码之家  ›  专栏  ›  技术社区  ›  kikito

MongoMapper-在Rails 2.3.5上使用Shoulda进行单元测试

  •  1
  • kikito  · 技术社区  · 15 年前

    我正在尝试使用MongoMapper在Rails2.3.5应用程序上实现Shoulda单元测试。

    到目前为止,我已经:

    1. 配置了一个使用MongoMapper的Rails应用程序(该应用程序工作)
    2. 把shoulda添加到我的gems中,并用 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,我对测试本身还很陌生。

    1 回复  |  直到 15 年前
        1
  •  2
  •   kikito    15 年前

    经过更深入的学习,我意识到了什么是错误的。

    Shoulda的宏( should_belong_to , should_have_many , should_validate_presence_of )仅适用于ActiveRecord-毕竟在 Shoulda::ActiveRecord::Macros .

    如果要使用这些,我必须为shoulda::mongomapper::macros实现宏。我不确定它是否值得。

    我希望这能帮助任何人找到这个职位。

    推荐文章