Какой тест упадет, если удалим этот кусок кода?
Смотрите, есть такой будильник:
class Alarm
def to_human
at.strftime("%k:%M").strip
end
end
И такой тест:
it "returns alarm in human-readable 24-hour format" do
time = Time.local(2019, 7, 7, 10, 35)
alarm = described_class.new(at: time)
expect(alarm.to_human).to eq "10:35"
end
Чтобы понять, достаточно ли этих тестов, я смотрю тестируемый модуль и спрашиваю себя: что тут особенного, если этот кусок кода удалить, какой тест упадет? Если никакой, то у меня 100% не хватает тестов или проверок.
В примере с будильником под вопросом .strip
. Если удалить его, тест останется зеленым. Значит, не хватает теста:
it "strips any leading spaces" do
time = Time.local(2019, 7, 7, 7, 15)
alarm = described_class.new(at: time)
expect(alarm.to_human).to eq "7:15"
end
P. S. Ещё больше постов о программировании, тестах и культуре разработки у меня в Телеграме.