Tôi muốn thử nghiệm một phương thức được gọi là đệ quy với một đối số cụ thể.Rspec: Làm thế nào để kiểm tra đệ quy?
cách tiếp cận của tôi:
class Recursable
def rec(arg)
rec(7) unless arg == 7
end
end
describe Recursable do
it "should recurse" do
r = Recursable.new('test')
r.should_receive(:rec).with(0).ordered
r.should_receive(:rec).with(7).ordered
r.rec(0)
end
end
Thật bất ngờ, RSpec không thành công với:
expected :rec with (7) once, but received it 0 times
Bất cứ ý tưởng gì sai với cách tiếp cận của tôi? Làm thế nào để kiểm tra đệ quy hiệu quả với một đối số cụ thể?
Ah, được rồi. Ồ, tốt! Tôi đang cố gắng để tìm một lỗi - phương pháp không trả về một giá trị sai (nó là phức tạp hơn so với mô tả ở đây). Tôi nghĩ tôi có thể kiểm tra từng phần của nó để thu hẹp không gian vấn đề. Nó trở nên phức tạp hơn với mỗi cấp độ đệ quy và nó sẽ được tốt đẹp để kiểm tra xem các đệ quy được thực hiện một cách chính xác. – crispy
Nói cách khác: Không kiểm tra việc triển khai, kiểm tra hiệu ứng của mã. Câu trả lời chính xác! – awendt