2012-07-11 3 views
1

나는 종종 capybara와 rspec 모두에서 테스트 (스펙)를 작성하는 사람들을 봅니다. 나는 오이 뷰를 테스트 할 수 있기 때문에Rspec 오이 반복되는 테스트를 피하십시오

config.generators do |g| 
    g.test_framework :rspec, 
    :view_specs => false, 
    :request_specs => false, 
    :routing_specs => false 
    end 
end 

내가이 일을 해요, 내가 맞다 : 기본 RSpec에 의해 사실 난 그냥이 하나의 비활성화하고있어, 사양의 모든 종류를 생성? 두 프레임 워크 사이에서 반복되는 테스트를 피하기 위해 비활성화해야하는 다른 사양이 있습니까?

감사합니다.

답변

3

오클랜드와 RSpec 모두에서 스펙을 작성하는 사람들은 동일한 작업 (Behavior Driven Development)을 수행하는 두 가지 프레임 워크이므로 볼 수 있습니다. Cucumber는 단순히 비즈니스 용으로 읽을 수있는 사양 문서를 제공하여 코드로 변환합니다. RSpec에는 비즈니스 사양이 설명 된 코드, 컨텍스트 블록 및 코드 내에 혼합되어 있습니다.

일반적으로 말하자면, 둘 다 사용하는 경우 UNIT 테스트 기능 (모델, 컨트롤러, 뷰 및 라우팅 사양)에 대해 RSpec을 사용할 것입니다. 모델 사양 만 수행하면된다는 강력한 주장이 있지만). 그런 다음 오이 또는 RSpec의 요청 사양을 통해 수락 테스트를 수행합니다. 두 가지를 모두 사용할 이유가 없습니다.

일반적인 사용법은 기술적 인 사람들 만이 스펙을 사용하고 있기 때문에 RSpec을 사용하는 것이 더 쉽습니다. 제품 오너가 스펙을보고 싶어하는 경우에는 오이 (오이)를 사용하는 것이 좋습니다.

요청 사양 및 오이 기능은 모두 통합 테스트의 한 형태이며, 이는 한 부분 만 분리하는 것이 아니라 응용 프로그램의 모든 측면을 사용하게 될 것이라는 것을 의미합니다. 일반적으로 제어기, 라우트 및 뷰 테스트에 대한 책임은 통합 테스트로 넘어갈 수 있으므로 RSpec에 필요하지 않은 것에 동의하면 RSpec에서이를 비활성화 할 수 있습니다.

나 자신 아직도 이상한 컨트롤러 테스트를 쓰고 싶습니다. 보통 여분의 매개 변수를 게시하면 응용 프로그램이 사용자가 관리자 나 비슷한 것을 만들지 않게됩니다.

+0

+1 - 정말 좋은 답변입니다. 그러나 기술적 인 사람들 만이 스펙을 사용하고 있다고하더라도, 오이가 응용 프로그램의 문서화에 유용하다는 사실을 알게되었습니다. – Nobita

+1

문서 형식으로 rspec의 출력이 보통 오이 기능 파일만큼 좋다는 것을 알았지 만 매우 사실입니다. – DVG

관련 문제