67
Các đoạn mã sau đây làm việc như mong đợi:Object.any_instance should_receive vs mong đợi() để nhận
Object.any_instance.should_receive(:subscribe)
Nhưng khi sử dụng kỳ vọng rspec mới nó không hoạt động:
expect(Object.any_instance).to receive(:subscribe)
Các lỗi là:
expected: 1 time with any arguments
received: 0 times with any arguments
làm thế nào tôi có thể làm công việc này với mong đợi() để nhận?
+1 cho "không được ghi nhận rất tốt". Vẫn là trường hợp. http://www.rubydoc.info/gems/rspec-mocks/RSpec/Mocks/ExampleMethods:expect_any_instance_of – johngraham
Tôi đã sử dụng 'allow_any_instance_of'. Đó có phải là bí danh của phương pháp này không? – rubyprince
@rubyprince Chúng khác nhau, với các phương pháp cho phép stubbing hành vi và mong đợi phương pháp thử nghiệm cho hành vi. Ví dụ, 'allow (my_obj) .to nhận (: method_name) .and_return (true)' stubs 'my_obj.method_name()' vì vậy nếu nó được gọi trong thử nghiệm, nó chỉ trả về 'true'. 'mong đợi (my_obj) .to nhận (: method_name) .and_return (true)' không thay đổi bất kỳ hành vi nào, nhưng thiết lập một kỳ vọng kiểm tra thất bại nếu 'my_obj.method_name()' không được gọi sau trong kiểm tra hoặc không trả lại đúng sự thật. – Saigo