Я хочу, чтобы те уже методы были протестированы, но все, что я стараюсь, похоже, не соответствует лучшим практикам и не работает.Метод экземпляра тестирования Rspec, который требует других методов return (stubbing?)
Может быть, кто-нибудь может поддержать меня этим?
КОД Для тестирования
def any_subset_greater?
divisors_sums.any?{|sum| sum > @value}
end
def no_subset_equal?
!divisors_sums.any?{|sum| sum == @value}
end
def check_room
any_subset_greater? && no_subset_equal?
end
Rspec TRY
сначала указать, похоже, не установить правильные значения возврата для метода делителей и переменной @value экземпляра.
describe "#any_subset_greater?" do
# Examples:
# [1,2] > 4 #=> false
# [1,2,3] > 4 #=> true
specify "returns true, when value in the array is greater" do
number.stub(:divisors){[1,2,3]}
number.stub(:value) {4}
expect(number.any_subset_greater?).to be_true
end
end
describe "#no_subset_equal?" do
# Examples:
# 4 === [1,2,4] #=> false
# 4 === [1,2,3] #=> false
# 4 === [1,2,6] #=> true
end
describe "#check_room" do
# testing condition from methods above
end
Это похоже на тонкую оболочку, но что вы пытаетесь описать методы? –
Откуда берется 'divisor_sums'? Кроме того, вы не должны использовать 'mock' для тестируемого объекта, так как он не содержит ваш логический код. –
@dave: да ... Я хотел попробовать это на самом деле, но все, что я делаю, похоже, довольно не прав. когда я заглушу дивизоры со значением, Аарон: Я не знаю, как ... попробовал пару вещей ... какой-нибудь ключ? не могли бы вы привести пример издевательства над этим? – radosch