Выполняется два блока кода.Блок кода передан expect
, а блок кода передан change
.Это то, что действительно происходит в псевдокоде.
difference = 1
initial_count = Article.count
article = Article.new(title: 'test', description: 'test')
article.save
final_count = Article.count
expect(final_count - initial_count).to eq(difference)
Я бы реорганизовал ваш тест, чтобы было немного проще следовать ему:
require 'rails_helper'
describe Article, type: :model do
let(:create_article) { Article.create(title: 'test', description: 'test') }
it 'is valid if title and description fields have value' do
expect { create_article }.to change { Article.count }.by(1)
end
end