Найти последнюю созданную запись теста RSpec - PullRequest
0 голосов
/ 13 сентября 2018

Как я могу написать тест, чтобы найти последнюю созданную запись?

Это код, который я хочу проверить:

Post.order(created_at: :desc).first

Я также использую factorybot

1 Ответ

0 голосов
/ 13 сентября 2018

Если вы назвали свой метод '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

Вы не тестируете результат вызова «последнего» метода - просто он вызывается.

...