2010-11-21 20 views
27

Önceden kurulmuş birkaç denetleyicim var. Şimdi onlar için özel testler yazmaya başlamak istiyorum. Özellik dosyalarını otomatik olarak oluşturan bir komut var mı? Rayların yeni kaynaklar için bunu yaptığını biliyorum, ancak mevcut kontrolörler/modeller için de yapıp yapmadığını bilmiyorum.Varolan denetleyiciler için nasıl teknik özellikler oluştururum?

cevap

42
rails g rspec:controller ControllerName 

mevcut denetleyicisi, tip n geçersiz kılmak ister.

config.generators do |g| 
    g.test_framework  :rspec 
end 

sonra rails g controller things çalışacaktır: Eğer application.rb içinde RSpec yapılandırmışsanız

+6

Bu SADECE üretir boş bir spec dosyası istiyorsanız, birlikte deneyebilirsiniz denetleyici için spec dosyası. Yardımcılar veya fabrikalar gibi ilişkili dosyaları istiyorsanız, şunları yapmak istediğinizde: 'g denetleyicileri ControllerName -s' raylar -s sonunda -s herhangi bir varolan dosyayı atlamasına neden olur, bu nedenle soruyla uğraşmak zorunda kalmazsınız hiçbir şeyi geçersiz kılma konusunda. – Blimey85

+0

Bu model için de çalışır? 'RSpec: model'? Bu rspec 1 üzerinde var? –

+0

"rspec" içinde bir isim vermek normalde bir denetleyici oluşturmaya çalışır mı? Yoksa denetleyici ControllerName'ın ne yaptığını düşünüyor musunuz? –

4

. Oluşturuldukları sırada dosyaların üzerine yazmamayı tercih edin. oldukça Önemsiz gibi

require 'spec_helper' 

describe ThingsController do 

    it "should be successful" do 
    get :index 
    response.should be_successful 
    end 

end 

Sık sık elle özelliklerini oluşturmak: Bu Oluşturulan aşağıdaki gibi

Bütün bir spec görünüyor.

+6

Bazen üretilen testlerin bundan daha ayrıntılı olabileceğini fark ettim. Özellikle kaynak oluştururken, test tüm REST yöntemleri için kod içerecektir. – picardo

+0

Sorunun başlığında "var olan denetleyiciler" i özellikle belirttiniz, bu yüzden metinde modelleri dahil ettiğinizi fark etmedim. Her iki durumda da, jeneratörü tekrar çalıştırmak ve modelin veya denetleyici dosyasının üzerine yazmak istediklerinde "n" deyimi, amaçlarınıza uygun olacaktır. :) –

8

İki seçenek vardır. Bir temel DİNLENME denetleyicisi için ilk teknik özelliklere sahip bir spec dosyası istiyorsanız, deneyin, Şimdi

rails g rspec:controller ControllerName 

:

rails g rspec:scaffold ControllerName 
İlgili konular