2014-01-31 5 views
0

Я хотел бы писать тесты в Rspec к классу:Как написать модульные тесты для этого конкретного класса ActiveRecord?

class Item < ActiveRecord::Base 
    has_many :cart_items 
    has_many :carts, through: :cart_items 

    validates :price, presence: true 
    validates :name, presence: true 
end 

Я не уверен, что я должен проверить здесь ... Можете ли вы дать несколько советов о том?

ответ

1

Используя shoulda-matchers драгоценный камень, вы можете сделать это

describe Item do 
    it {should validate_presence_of :price} 
    it {should validate_presence_of :name} 
    it {should have_many(:cart_items)} 
    it {should have_many(:carts).through(:cart_items)} 
end 
1

В вашем spec/models/item_spec.rb и может написать свой тест единицы.

Я просто даю вам пример того, что вы должны написать в вашей спецификации для данной конкретной модели

require 'spec_helper' 
describe Task do 
    before do 
     @task = Task.new(name: "Example1", price:123) 
    end 
    subject { @task } 

    it { should respond_to(:name) } 
    it { should respond_to(:price) } 
    it { should respond_to(:cart_items) } 
    it { should be_valid } 

    describe "when name is not present" do 
     before { @task.name = " " } 
     it { should_not be_valid } 
    end 
end 

вы можете написать больше согласно проверке, требования, поля, ассоциации и т.д.

Смежные вопросы