小编Sco*_*vey的帖子

测试并将纯红宝石对象集成到Rails 3.2应用程序中

在观看了Corey 的Fasts Rails Tests讲话和Avdi阅读Object on Rails后,我正在设置我的新Rails 3.2应用程序以利用这些概念.

为了让一切正常,我开始使用这个示例spec文件.

# spec_no_rails/projects/financials_spec.rb
require_relative '../spec_no_rails_helper'

class DummyProject
  include Modules::Projects::Financials
end

describe Modules::Projects::Financials do
  it 'should have some method' do
    DummyProject.new.foo.should == 'bar'
  end
end
Run Code Online (Sandbox Code Playgroud)

这是用于要求模块的初始spec_no_rails_helper.rb文件

# spec_no_rails/spec_no_rails_helper.rb
Dir["#{Dir.pwd}/app/pimms/**/*.rb"].each { |file| require file }
Run Code Online (Sandbox Code Playgroud)

然后我开始创建新的示例模块.

# app/pimms/modules/projects/financials.rb
module Modules::Projects::Financials
  def foo
    'bar'
  end
end
Run Code Online (Sandbox Code Playgroud)

为了看到当我将新的独立模块包含在我的一个ActiveRecord类中时,一切都将起作用,我将以下行添加到我的一个模型中.

# app/models/project.rb
class Project < ActiveRecord::Base
  include Modules::Projects::Financials
end
Run Code Online (Sandbox Code Playgroud)

这让我可以打开控制台,看到一切都按预期工作.

> Project.first.foo
=> "bar"
Run Code Online (Sandbox Code Playgroud)

所以在这个阶段我定义了一个在app/pimms/modules/projects/financials.rb下定义的命名空间独立模块,我可以将其包含在Rails模型中,一切都按预期工作.

我遇到的问题是当我尝试运行规范时,我得到以下内容.

> bundle exec rspec spec_no_rails/
/Users/scott/Code/pimms/spec_no_rails/projects/financials_spec.rb:5:in `<class:DummyProject>': …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

2
推荐指数
1
解决办法
504
查看次数

标签 统计

ruby ×1

ruby-on-rails ×1