Здравствуйте, помогите пожалуйста понять логику работы тестов моделей с помощью фабрик.
Вот сам тест:
require 'rails_helper'
RSpec.describe News do
news1 = FactoryGirl.create(:news)
news2 = FactoryGirl.create(:news)
news1.title.should == "1 test news title"
news2.title.should == "2 test news title"
end
Вот фабрика
FactoryGirl.define do
factory :news do
sequence(:title) { |i| "#{i} test news title"}
sequence(:description) { |i| "#{i} test news description, must have minimum 40 letters"}
user_id 1
news_poster { fixture_file_upload "#{Rails.root}/spec/fixtures/images/calendar.png", 'image/png' }
end
end
И модель News
class News < ActiveRecord::Base
belongs_to :user
has_attached_file :news_poster, styles: { medium: "300x300>", thumb: "100x100>" }, default_url: "/images/:style/missing.png"
validates_attachment_content_type :news_poster, content_type: /\Aimage\/.*\Z/
validates :title, presence: true, uniqueness: true, length: { minimum: 5, maximum: 40 }
validates :description, presence: true, length: { minimum: 40, maximum: 250 }
validates :news_poster, presence: true
end
По моей логике, каждый раз при запуске теста в тестовой БД должны создаваться новые записи с измененной цифрой "i"
sequence(:title) { |i| "#{i} test news title"}
И при первом запуске теста все работает, создаются записи с title - "1 test news title" и "2 test news title" - тест проходит успешно, но при повторном - цифра 1 и 2 не меняется на 3 и 4 как я думал, и уже выскакивает ошибка. Возможно я не правильно строю логику тестов?