2012-01-05 30 views
6

Tôi đang viết một số thông số kỹ thuật để kiểm tra tệp mẫu trong đá quý có trình tạo cho Rails. Tôi rất muốn tiếp cận với "admin_layout.html.erb" trong spec rspec dưới đây:Cách truy cập văn bản mô tả trong rspec

require 'spec_helper' 

describe "admin_layout.html.erb" do 

    it "has page title Admin" do 
    HERES WHERE I WOULD LOVE TO HAVE ACCESS TO "admin_layout.html.erb" AS A VARIABLE 
    end 

end 
+0

Tôi tò mò, điều này cho phép bạn làm gì? – Gareth

+0

Tôi đang tạo trình tạo quản trị viên trong Rails và tôi đang cố gắng kiểm tra một số khái niệm cơ bản về các mẫu mà trình tạo mà tôi đang viết sử dụng –

Trả lời

10

Bạn có thể sử dụng self.class.description để có được thông tin này:

it "has page title Admin" do 
    layout = self.class.description 
    # => "admin_layout.html.erb" 
end 

Tuy nhiên, hãy ghi nhớ điều này sẽ chỉ đưa ra mô tả của cha mẹ đầu tiên. Vì vậy, nếu bạn có ngữ cảnh trong khối describe, thì các ví dụ trong ngữ cảnh sẽ đặt tên ngữ cảnh cho self.class thay vì tên của khối describe. Trong trường hợp đó, bạn có thể sử dụng siêu dữ liệu:

describe "admin_layout.html.erb", :layout => "admin_layout.html.erb" 
    context "foo" do 
    it "has page title Admin" do 
     layout = example.metadata[:layout] 
    end 
    end 
end 
+3

'example.metadata [: full_description]' cũng có thể hữu ích – zetetic

+6

Trong RSpec 3, sử dụng 'RSpec.current_example.metadata [...]'. Xem [vấn đề này] (https://github.com/rspec/rspec-rails/issues/1123). – fiedl

Các vấn đề liên quan