Если вы назвали свой метод 'last_post':
def self.last_post
Post.order(created_at: :desc).first
end
Затем в своем тесте:
it 'should return the last post' do
expect(Post.last_post).to eq(Post.last)
end
С другой стороны, самый простой способ написать свой код - это просто
Post.last
И вам не следует проверять результат работы методов ruby (вы должны убедиться, что вызываются правильные методы ruby), так что если вы это сделали:
def self.last_post
Post.last
end
Тогда ваш тест может выглядеть следующим образом:
it 'should send the last method to the post class' do
expect(Post).to receive(:last)
Post.last_post
end
Вы не тестируете результат вызова «последнего» метода - просто он вызывается.