Блог Половнёва

Только то, что влияет на проверку

Смотрите:

it "builds tag slug from its title" do
  tag = Tag.new(name: "Веб-разработка", color: "#ccc")

  expect(tag.slug).to eq "veb-razrabotka"
end

Зачем тут color? На что он влияет? Как связан со slug и name? Чтобы ответить на все эти вопросы, придется покопаться в коде.

Бывает обратная ситуация:

it "builds tag slug from its title" do
  tag = build(:tag)

  expect(tag.slug).to eq "veb-razrabotka"
end

Почему veb-razrabotka? Откуда? От чего зависит? Чтобы ответить на эти вопросы, придется покапаться в фабриках.

Отсюда правило: в тесте должны быть данные, которые непосредственно влияют на проверку. Все остальное — под нож.

P. S. Ещё больше постов о программировании, тестах и культуре разработки у меня в Телеграме.