Я написал версию fizzbuzz около шести месяцев назад и был довольно уверен, что мое тестовое покрытие в то время было хорошим. Я загрузил его сегодня, и большинство моих тестов тестов не удалось. Первоначально я использовал синтаксис to_be true. Чтобы снова получить тестовое покрытие, мне пришлось изменить этот синтаксис на состояние, равное eq true. Может ли кто-нибудь объяснить, почему это так, и что я все еще правильно тестирую?Различия с синтаксисом Rspec eq и должны быть
Оригинальный пример синтаксиса
**fizzbuzz_spec.rb**
require 'fizzbuzz'
describe 'FizzBuzz' do
context 'it knows that a number is divisible by' do
it '3' do
expect(is_divisible_by_three?(3)).to be_true
end
end
end
**fizzbuzz.rb**
def is_divisible_by_three?(number)
true
end
**ERROR:** 1) FizzBuzz it knows that a number is divisible by 3
Failure/Error: expect(is_divisible_by_three?(3)).to be_true
expected true to respond to `true?`
# ./spec/fizzbuzz_spec.rb:7:in `block (3 levels) in <top (required)>'
Новый пример синтаксиса fizzbuzz_spec.rb требуют '' FizzBuzz
describe 'FizzBuzz' do
context 'it knows that a number is divisible by' do
it '3' do
expect(is_divisible_by_three?(3)).to eq true
end
end
end
**fizzbuzz.rb**
def is_divisible_by_three?(number)
true
end
Я знаю, что мне нужно расширить код в def defisible по методу, я просто использую здесь true здесь.