Я работаю над рельсами project и i m new на рельсах, и я хочу проверить свои модельные отношения и методы в модели с помощью rspec. Как я мог бы сделать это мои модели отношений, как этоТестирование отношений и методов в модели с использованием 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
Вы должны написать спецификации для кода * вы * пишите. Добавление тестов для функций, предоставляемых инфраструктурой, не является хорошей идеей. – Swanand
Я согласен частично с комментарием @ Swanand, но это немного более тонко. Существует фундаментальное различие между ассоциациями (которые предоставляются каркасом) и валидациями (которые также предоставляются каркасом). Ассоциации - это структура, которую не нужно тестировать напрямую, потому что она должна существовать только для поддержки поведения, которое должно быть проверено. Валидации, однако, являются поведением и должны быть проверены. Мои 2 цента. –
@DavidChelimsky - Конечно, согласен. Моя единственная забота заключалась в том, что валидации больше похожи на DSL, предоставляемые рельсами, и были уже проверены при прохождении рельсов. Но я возьму ваше слово для этого (я уже сделал это, прочитав книгу RSpec). – Swanand