Тестирование отношений и методов в модели с использованием Rspec - PullRequest
4 голосов
/ 07 февраля 2012

Я работаю над проектом рельсов, и я новичок в рельсах, и я хочу проверить свои модельные связи и методы в модели, используя rspec. Как я мог сделать это, мои модельные отношения такие

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

Мой файл idea_spec.rb

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

Ответы [ 2 ]

5 голосов
/ 07 февраля 2012

Если вы используете musta-matchers (https://github.com/thoughtbot/shoulda-matchers) gem, вы можете написать их как it{should belong_to(:person)}

Но, честно говоря, я не получаю много от этих типов тестов, AR хорошо тестируется.

0 голосов
/ 07 февраля 2012

Простой ответ - нет. Вы также не тестируете has_many или belongs_to. Место для этих спецификаций / тестов находится в кодовой базе Rails, а не в вашей кодовой базе. Ваша Idea спецификация не дает вам абсолютно ничего, чего не делает Rails.

Вот официальные тесты:

  1. belongs_to
  2. has_many

Редактировать: Пожалуйста, прочитайте комментарий @ DavidChelimsky выше.

...