I. Giới thiệu
Rspec là một khung sử dụng để kiểm tra Ruby. Nó hơi khác một chút so với các khung công tác khác bởi dễ đọc và hiểu cú pháp bởi những người không có nhiều kiến thức lập trình. Rspec chủ yếu tập trung vào cách bạn mô tả hành vi của ứng dụng của bạn và nó không đề cập đến quy trình hoặc luồng trong ứng dụng của bạn. Trong bài viết này, tôi sẽ chỉ cho bạn về 2 tính năng trong rspec: lọc và định dạng .
II. Lọc
Mỗi ví dụ trong Rspec đều có siêu dữ liệu liên quan và bạn có thể nối thêm thông tin tùy ý vào nó. Bằng cách thêm siêu dữ liệu với bất kỳ giá trị nào bạn muốn, bạn có thể chạy rspec và lọc chúng theo giá trị bạn đặt thành siêu dữ liệu. Ví dụ: bây giờ chúng tôi có một tệp rspec: spec / sample_spec.rb như dưới đây:
1 2 3 4 5 6 7 8 9 10 | require "spec_helper" describe "Testing" do it "example 1" do end it "example 2" do end end |
Sau khi chạy thử sample_spec.rb, chúng tôi nhận được kết quả:
1 2 3 4 5 | .. Finished in 0.00168 seconds 2 examples, 0 failures |
Bây giờ chúng tôi thêm siêu dữ liệu first and second
vào tệp sample_spec.rb
của chúng tôi như sau:
1 2 3 4 5 6 7 8 9 10 | require "spec_helper" describe "Testing" do it "example 1", first: true do end it "example 2", second: true do end end |
Bằng cách thêm siêu dữ liệu, bây giờ bạn có thể lọc ví dụ để chạy bằng lệnh bên dưới:
- Trong trường hợp:
first: true
1 2 | rspec --tag first sample_spec.rb |
bạn có thể thấy ví dụ chỉ kết quả đã được chạy:
1 2 3 4 5 6 | Run options: include {:first=>true} . Finished in 0.00124 seconds 1 example, 0 failures |
- Trong trường hợp:
second: true
và kết quả như sau:
1 2 3 4 5 6 | Run options: include {:second=>true} . Finished in 0.00124 seconds 1 example, 0 failures |
III. Formatters
Trình định dạng cho phép RSpec hiển thị đầu ra kết quả kiểm tra theo nhiều cách khác nhau. Rspec cung cấp cho bạn một số trình định dạng và sử dụng nó với kết quả đầu ra mà bạn muốn. Một cách khác, RSpec cho phép tùy chỉnh đầu ra bằng cách tạo lớp Formatter của riêng bạn. Dưới đây là một số Trình định dạng mà bạn có thể sử dụng trong Rspec:
-
progress (default)
– In các dấu chấm để vượt qua các ví dụ, F cho các lỗi, * để chờ xử lý. -
documentation
– In cácdocumentation
được truyền để mô tả và phương thức (và bí danh của chúng). -
html
-
json
– Hữu ích cho việc lưu trữ dữ liệu để phân tích tiếp theo. Trình định dạng tiến trình là mặc định, dù sao bạn cũng có thể chọn một hoặc nhiều trình định dạng khác bằng cách chuyển qua tùy chọn dòng lệnh--format
(hoặc -f ngắn).
1 2 3 | rspec --format documentation rspec --format documentation --format html |
Giả sử chúng ta có một tệp spec/sample_spec.rb
:
1 2 3 4 5 6 7 8 9 10 | require "spec_helper" describe "Testing" do it "example 1" do end it "example 2" do end end |
Hãy thử chạy với tùy chọn --format progress
:
1 2 | rspec --format progress spec/sample_spec.rb |
Sau khi chúng tôi chạy lệnh, bạn có thể thấy không khác gì với những gì chúng tôi chạy mà không có --format progress
. Rspec sẽ đặt --format progress
định dạng theo định dạng defualt.
1 2 3 4 5 | .. Finished in 0.00205 seconds 2 examples, 0 failures |
Hãy thử chạy với tùy chọn --format documentation
:
1 2 | rspec --format documentation spec/sample_spec.rb |
Kết quả:
1 2 3 4 5 6 7 | Testing example 1 example 2 Finished in 0.00169 seconds 2 examples, 0 failures |
IV. Phần kết luận
Tôi hy vọng bài viết này có thể giúp tất cả các bạn hiểu thêm về Rspec freature. Đặc biệt, về 2 tính năng mà tôi nói ở trên:
- Cách lọc ví dụ mà bạn muốn chạy bằng cách thêm siêu dữ liệu.
- Làm thế nào để định dạng kết quả đầu ra với các trình định dạng Rspec.