[ruby-on-rails] RSpec : 기능과 요청 사양의 차이점은 무엇입니까?

Rspec의 기능 사양요청 사양 의 개념적 차이점은 무엇입니까 ?

기능 사양 문서에서 :

기능 사양은 애플리케이션을 통해 일부 기능을 실행하기위한 고수준 테스트입니다. 일반적으로 웹 페이지와 같은 외부 인터페이스를 통해서만 애플리케이션을 구동해야합니다.

요청 사양의 경우 :

요청 사양은 Rails의 통합 테스트에 대한 얇은 래퍼를 제공하며 라우팅 (Rails에서 제공)을 포함하여 전체 스택을 통해 동작을 유도하고 스터 빙없이 (사용자가 원하는대로) 동작하도록 설계되었습니다. 요청 사양으로 다음을 수행 할 수 있습니다.

  • 단일 요청 지정
  • 여러 컨트롤러에서 여러 요청 지정
  • 여러 세션에서 여러 요청 지정

기능 사양은 Capybara를 사용 하고 요청 사양은 사용 하지 않는다는 것을 알고 있습니다. 그러나 그것은 다른 개념의 가치가 거의 없습니다.



답변

개념상의 차이점은 일반적으로 사용자 스토리를 테스트하고 모든 상호 작용이 사용자 인터페이스를 통해 이루어져야한다는 것입니다. 이것이 Capybara가 등장하는 곳입니다. 요청 사양은 여전히 ​​애플리케이션의 동작을 테스트하고 있으며 수락 테스트가 가질 수있는 가독성을 기대하지 않습니다. 따라서 수용 테스트를위한 향상된 구문을위한 기능이 있습니다.

기술적 차이점에는 요청 사양이 Rails 통합 테스트를 래핑하는 반면 기능 사양은 그렇지 않습니다. 이는 요청 사양을 사용하여 응답에 대해 get, post, put, delete 및 assert 메서드를 사용할 수 있음을 의미합니다. 기능 사양을 사용하면 브라우저를 통해 모든 상호 작용을 유도하고 페이지에 대한 방문 및 주장과 같은 방법을 사용해야합니다.

github의 rspec-rails 소스 코드에서 feature_spec.feature를 읽는 것이 좋습니다. 이게 도움이 되길 바란다.


답변