2 ruby-on-rails rspec-rails ruby-on-rails-3.2
我是Rails和测试的新手,我写了这个模型:
class KeyPerformanceInd < ActiveRecord::Base
#attr_accessible :name, :organization_id, :target
include ActiveModel::ForbiddenAttributesProtection
belongs_to :organization
has_many :key_performance_intervals, :foreign_key => 'kpi_id'
validates :name, presence: true
validates :target, presence: true
validates :organization_id, presence: true
end
Run Code Online (Sandbox Code Playgroud)
我的问题是这样的模型,我应该写一些RSpec测试?有这样的事吗?或者有什么可以做的事情?我听说过FactoryGirl,我需要测试这个模型还是用于测试控制器中的东西?
Describe KeyPerformanceInd do
it {should belong_to(:key_performance_interval)}
end
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您不需要做更多,也可以使用shoulda-matchers gem来使您的代码真正干净:
it { should belong_to(:organization) }
it { should have_many(:key_performance_intervals) }
it { should validate_presence_of(:name) }
it { should validate_presence_of(:target) }
it { should validate_presence_of(:organization_id) }
Run Code Online (Sandbox Code Playgroud)
就是这样.
FactoryGirl在这种情况下,您不需要用于创建有效且可重复使用的对象.但您可以在模型测试中使用工厂.一个简单的例子:
你的工厂:
FactoryGirl.define do
factory :user do
first_name "John"
last_name "Doe"
end
end
Run Code Online (Sandbox Code Playgroud)
你的考试:
it "should be valid with valid attributes" do
user = FactoryGirl.create(:user)
user.should be_valid
end
Run Code Online (Sandbox Code Playgroud)
查看Factory Girl文档以获取更多信息.
| 归档时间: |
|
| 查看次数: |
136 次 |
| 最近记录: |