2014-07-14 24 views
19

Tôi bắt đầu một dự án Rails mới lần đầu tiên trong một thời gian. Khi giàn giáo một mô hình, RSpec tạo mô tả khối xác với "RSpec"RSpec.describe vs mô tả

RSpec.describe MyModel do 
    ... 
end 

vs phong cách cũ:

describe MyModel do 
    ... 
end 

Tôi đã đọc kỹ các bản ghi thay đổi nhưng phải được thiếu hợp lý cho sự thay đổi?

Trả lời

19

Kể từ Rpec 3, bạn có thể tắt tính khả dụng toàn cầu của describe bằng cách giới hạn domain specific language (dsl).

Tiền tố với Rspec.describe đảm bảo các thử nghiệm sẽ vẫn chạy sau khi triển khai giới hạn.

Lưu ý: bạn vẫn không cần tiền tố, trừ khi bạn tắt sự sẵn có với config.expose_dsl_globally = false

Edit: liên kết đến dsl wikipedia

+3

... Cảm ơn Bro .. –

18

Via cam kết:

Trong một nỗ lực phối hợp để giữ cho khỉ vá ở mức tối thiểu. Máy phát số thông số Rails mặc định không được sử dụng phiên bản của khỉ được vá describe.

Luôn chỉ sử dụng các phi khỉ vá RSpec.describe, thay vì kiểm tra cấu hình, có những lợi ích của:

  • không đòi hỏi RSpec được nạp khi máy phát được điều hành bởi Rails
  • không giới thiệu thêm logic và nhà nước để xử lý các tiểu bang khác nhau
  • Resolve # 1048

https://github.com/rspec/rspec-rails/commit/ca0d249858903949052e06884e8e7f9d596cdc79