I m working on rails project and im new on rails and I want to test my model relationships and methods in model using rspec. How could I do this my model relationships are like this
class Idea < ActiveRecord::Base
belongs_to :person
belongs_to :company
has_many :votes
validates_presence_of :title, :description
def published?
if self.status == "published"
return true
else
return false
end
end
def image_present
if self.image_url
return self.image_url
else
return "/images/image_not_found.jpg"
end
end
def voted
self.votes.present?
end
end
My idea_spec.rb file is
require 'spec_helper'
describe Idea do
it "should have title" do
Idea.new(:title=>'hello',:description=>'some_desc').should be_valid
end
it "should have description" do
Idea.new(:title=>'hello',:description=>'some_desc').should be_valid
end
end
If you use shoulda-matchers (https://github.com/thoughtbot/shoulda-matchers) gem you can write these as it{should belong_to(:person)}
But to be honest I don't get a lot out of these types of test, AR is well tested.
Simple answer is, you do not. Neither do you test has_many
or belongs_to
. The place for these specs / tests is in Rails codebase, and not in your codebase. You Idea
spec gives you absolutely nothing that Rails does not.
Here are the official tests:
Edit: Please read @DavidChelimsky's comment above.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.