RSpec - Kỳ vọng
Khi bạn học RSpec, bạn có thể đọc rất nhiều về các kỳ vọng và nó có thể hơi khó hiểu lúc đầu. Có hai chi tiết chính bạn cần lưu ý khi nhìn thấy cụm từ Kỳ vọng -
Một kỳ vọng chỉ đơn giản là một tuyên bố trong một it block sử dụng expect()phương pháp. Đó là nó. Nó không phức tạp hơn thế. Khi bạn có mã như thế này:expect(1 + 1).to eq(2), bạn có Kỳ vọng trong ví dụ của mình. Bạn đang mong đợi rằng biểu thức1 + 1 đánh giá 2. Mặc dù vậy, từ ngữ rất quan trọng vì RSpec là một khung kiểm tra BDD. Bằng cách gọi câu lệnh này là Expectation, rõ ràng là mã RSpec của bạn đang mô tả “hành vi” của mã mà nó đang thử nghiệm. Ý tưởng là bạn đang diễn đạt cách mã sẽ hoạt động, theo cách đọc giống như tài liệu.
Cú pháp Expectation tương đối mới. Trướcexpect() phương pháp được giới thiệu (trở lại năm 2012), RSpec sử dụng một cú pháp khác dựa trên should()phương pháp. Kỳ vọng ở trên được viết như thế này theo cú pháp cũ:(1 + 1).should eq(2).
Bạn có thể gặp phải cú pháp RSpec cũ cho Kỳ vọng khi làm việc với mã cũ hơn dựa trên hoặc phiên bản RSpec cũ hơn. Nếu bạn sử dụng cú pháp cũ với phiên bản RSpec mới, bạn sẽ thấy một cảnh báo.
Ví dụ, với mã này -
RSpec.describe "An RSpec file that uses the old syntax" do
it 'you should see a warning when you run this Example' do
(1 + 1).should eq(2)
end
end
Khi bạn chạy nó, bạn sẽ nhận được đầu ra giống như thế này -
. Deprecation Warnings:
Using `should` from rspec-expectations' old `:should`
syntax without explicitly enabling the syntax is deprecated.
Use the new `:expect` syntax or explicitly enable
`:should` with `config.expect_with( :rspec) { |c| c.syntax = :should }`
instead. Called from C:/rspec_tutorial/spec/old_expectation.rb:3 :in
`block (2 levels) in <top (required)>'.
If you need more of the backtrace for any of these deprecations to
identify where to make the necessary changes, you can configure
`config.raise_errors_for_deprecations!`, and it will turn the deprecation
warnings into errors, giving you the full backtrace.
1 deprecation warning total
Finished in 0.001 seconds (files took 0.11201 seconds to load)
1 example, 0 failures
Trừ khi bạn bắt buộc phải sử dụng cú pháp cũ, chúng tôi khuyên bạn nên sử dụngpect () thay vì should ().