Я использую Rspec в Rails. В настоящее время я тестирую одну из моих моделей. Эта конкретная модель внесена в базу данных с 5 записями. Каждая запись имеет атрибут name с засеянным значением. Например:
def self.seed
find_or_create_by(name: 'Text')
find_or_create_by(name: 'Number')
find_or_create_by(name: 'Date')
find_or_create_by(name: 'Time')
find_or_create_by(name: 'Boolean')
end
Я хочу проверить создание каждого в Rspec. И в настоящее время я делаю это:
describe FieldType, type: :model do
context "when :name is text" do
let(:field_type) { FieldType.create(name: "Text") }
it { expect(field_type).to be_persisted }
it { expect(field_type.name).to eq("Text")}
it { expect(field_type.type_from_field).to be(String) }
end
context "when :name is number" do
let(:field_type) { FieldType.create(name: "Number") }
it { expect(field_type).to be_persisted }
it { expect(field_type.name).to eq("Number")}
it { expect(field_type.type_from_field).to be(Integer) }
end
...
Это правильный способ проверить это поведение? Или есть более эффективный способ сделать это?