简体   繁体   中英

Testing the relationships and Methods In Model using Rspec

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:

  1. belongs_to
  2. has_many

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM