доступ разрешить переменные в описываемом блоке

58
5

поэтому я пытаюсь написать спецификацию для этого метода:

class Student
has_many :payments
def payments_by_year
payments.group_by { |payment| payment.payment_date.year }
end
end

Я сделал свой spec следующим образом:

RSpec.describe Student do
let!(:student) { create :student, first_name: 'Bruce', last_name: 'Wayne' }
let!(:student2) { create :student, first_name: 'Peter', last_name: 'Parker' }
let!(:payment) { create :payment, student: student, payment_date: Date.new(2016,9,1) }
let!(:payment2) { create :payment, student: student, payment_date: Date.new(2016,8,1) }
let!(:payment3) { create :payment, student: student, payment_date: Date.new(2015,7,1) }

describe '#payments_by_year' do
describe 'returns hash of payments with years as keys' do
subject { student.payments_by_year }

it { is_expected.to eq ####SOMETHING SHOULD BE HERE}
end
end
end

Моя проблема в том, что я не знаю, что нужно передать методу :eq, поскольку я не могу получить доступ к переменным без исключения:

'payment' is not available on an example group (e.g. a 'describe' or 'context' block). It is only available from within individual examples (e.g. 'it' blocks) or from constructs that run in the scope of an example (e.g. 'before', 'let', etc). (RSpec::Core::ExampleGroup::WrongScopeError)

Поэтому я не могу жестко определить правильные результаты. Как я могу получить доступ к этим переменным в describe блоке?

спросил(а) 2016-09-11T14:35:00+03:00 3 года, 4 месяца назад
0
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема