Khi viết các bài kiểm tra RSpec, tôi thấy mình đã viết rất nhiều mã trông giống như thế này để đảm bảo rằng một phương thức được gọi trong quá trình thực hiện kiểm tra (để tranh luận, hãy nói rằng tôi không thể thực sự thẩm vấn trạng thái của đối tượng sau lời gọi bởi vì thao tác mà phương thức thực hiện không dễ dàng để thấy tác dụng của).
describe "#foo"
it "should call 'bar' with appropriate arguments" do
called_bar = false
subject.stub(:bar).with("an argument I want") { called_bar = true }
subject.foo
expect(called_bar).to be_true
end
end
Điều tôi muốn biết là: Có cú pháp nào đẹp hơn cái này không? Tôi có thiếu một số tính năng tuyệt vời RSpec vui nhộn có thể làm giảm đoạn mã trên xuống một vài dòng không? should_receive
nghe có vẻ như nó nên làm điều này nhưng đọc thêm nó có vẻ như đó không phải là chính xác những gì nó làm.
should_receive
, vì vậy tôi nghĩ câu hỏi đó sẽ hữu ích.