2013-10-26 2 views
3

생성 스펙 :RSpec에서 expect 구문을 사용하여 스펙을 생성 할 수 있습니까? 와

rails g controller Home index 

스펙은 이전 object.should 구문

require 'spec_helper' 

describe HomeController do 
    describe "GET 'index'" do 
    it "returns http success" do 
     get 'index' 
     response.should be_success 
    end 
    end 
end 

생성됩니다 그것은 대신 구문을 기대 사용하는 발전기를 구성 할 수 있습니까?

원하는 출력 : 설정/application.rb에

require 'spec_helper' 

describe HomeController do 

    describe "GET 'index'" do 
    it "returns http success" do 
     get 'index' 
     expect(response).to be_success 
    end 
    end 

end 

:

config.generators do |g| 
    g.test_framework :rspec, fixture: true 
    g.fixture_replacement :factory_girl, dir: 'spec/factories' 
    g.view_specs false 
    g.stylesheets = false 
    g.javascripts = false 
end 
+1

이 내용은 [commit] (https://github.com/rspec/rspec-rails/commit/652a77d24874d15feebce473dfb8de19d12708a)에 의해 수정되었으며 더 이상 관련이 없습니다. – max

답변

3

예. 내 컨트롤러 용으로 해본 적은 없지만 모델 용으로 해왔습니다. 같은 과정이어야합니다. 당신이, 당신의 솔루션을 게시 할 경우

require 'spec_helper' 

describe <%= class_name %> do 

    let(:<%= singular_name %>) { FactoryGirl.create(:<%= singular_name %>) } 

    it "should be valid from the factory" do 
    expect(<%= singular_name %>).to be_valid 
    end 

end 

: 내 모델의 나는 다음과 같은 내용으로 lib/templates/rspec/model/model_spec.rb를 만들었습니다. 그것은 버그도 나 때문에 릴리스 3.0.0.rc1에서 사용할 수

+0

[gem 저장소] (https://github.com/rspec/rspec-rails)를 통해 파헤 쳤습니다. 템플릿 집합이 하나만있는 것으로 보입니다. 따라서 대답은 '아니오'입니다. 그러나 이것은 정말 멋진 해결 방법이므로 받아 들일 것입니다. – max

+0

좋은 해결책. 템플릿을 올바르게 읽는다면,'let'을'subject'로 바꿔야합니다. expect 블록에서'singular_name'을 사용할 수없는 이유는 무엇입니까? – Shepmaster

+0

@Shepmaster - 나는 '피험자'를 결코 좋아하지 않았다. 그리고 네,'singular_name'을 사용할 수 있어야합니다. 나는 그것을 모으는 것만으로도 효과가 있다고 상상한다. 나는 코드를 업데이트 할 것이다. 그게 낫다. –

0

:-) 버전을 복용 상관 없어. gem 'rspec', '~> 3.0.0.rc1'

+0

또는 https://github.com/yujinakayama/transpec을 업그레이드하지 않은 경우 transpec을 사용하십시오. –

관련 문제