Должны ли они соответствовать обязательному тесту - PullRequest
0 голосов
/ 09 января 2019

У меня есть модель

class Certificate < ApplicationRecord
  notification_object
  belongs_to :user
  belongs_to :share_class, optional: true
  belongs_to :round, optional: true
  belongs_to :company, optional: true
  has_many :approvals, as: :votable
end

Спецификация для этой модели выглядит следующим образом

требуется 'rails_helper'

RSpec.describe Certificate, type: :model do
  it { should belong_to(:user) } 
  it { should belong_to(:share_class).optional } 
  it { should belong_to(:round).optional } 
  it { should belong_to(:company).optional } 
  it { should have_many(:approvals) } 
end

Но когда я запускаю эту спецификацию, я получаю эту ошибку

1) Ожидается, что сертификат будет принадлежать к классу share_class: true

     Failure/Error: it { should belong_to(:share_class).optional }
       Expected Certificate to have a belongs_to association called share_class (the association should have been defined with`optional: true`, but was not)
     # ./spec/models/certificate_spec.rb:5:in `block (2 levels) in <top (required)>'

Я не знаю, почему я получаю эту ошибку.

1 Ответ

0 голосов
/ 09 января 2019

Для начала вы должны прочитать этот разговор.

@ mcmire У нас есть предварительная версия! Попробуйте v4.0.0.rc1, чтобы получить опционально.

А затем ожидаемый код должен выглядеть следующим образом:

RSpec.describe Certificate, type: :model do
  it { should belong_to(:user) } 
  it { should belong_to(:share_class).optional } 
  it { should belong_to(:round).optional } 
  it { should belong_to(:company).optional } 
  it { should have_many(:approvals) } 
end
...