我想要那些已經測試的方法,但是我嘗試的所有方法似乎都不符合最佳實踐,也不能工作。需要其他方法返回(stubbing?)的Rspec測試實例方法
可能有人能用這個支持我嗎?
代碼進行測試
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
這看起來像一個精緻的外殼,但什麼你嘗試的描述方法? – 2013-02-15 18:37:55
'divisor_sums'從哪裏來?另外,你不應該爲被測對象使用'mock',因爲它不包含你的邏輯代碼。 – 2013-02-15 18:41:45
@dave:是的......我想嘗試一下,但我所做的一切似乎都不太合適。當我用一個值殘缺除數時, 亞倫:我不知道怎麼......嘗試了幾件事......任何線索?你可以發表一個嘲笑這個例子嗎? – radosch 2013-02-15 18:58:46