6

이미 구축 된 Rails 3 앱에 대한 통합 테스트를 설정하려고합니다. 앱은 Rails 3 및 Ruby 1.9.2로 제작되었습니다. 나는 Capybara, Cucumber 및 RSpec 2에 대한 권장 사항을 보았지만 각각의 이점이 무엇인지 잘 모르겠습니다.레일 통합 테스트

나는 또한 그들이 긴밀하게 묶여있는 것처럼 보였습니다. 내가 항상 보았던 포스트는 오이와 카피 바라를 사용하거나 오이와 Rspec을 사용하는 것에 대해 이야기하는 것 같습니다.

각각의 장단점은 무엇입니까? 함께 잘 작동하는 특정 조합이 있습니까?

답변

13

이러한 테스트 도구는 모두 테스트 환경의 다른 부분에 속합니다.

통합 테스트를 설정하려면 오이을 사용해야합니다. 실제 대안이 없기 때문입니다. 오이는 Behavior Driven Development로 쉽게 설계되었지만 BDD가 아니더라도 통합 테스트에 완벽합니다.

카피 바라 사명은 "모든 브라우저 시뮬레이터를 지원하는 것을 목표로하는 webrat 대안"입니다. 따라서 브라우저 부분 (http 요청, DOM 조작 등)을 시뮬레이트하려면 Webrat 또는 Capybara라는 두 가지 대안이 있습니다. 오이는 양쪽 모두와 잘 어울립니다. 실제로 어떤 시스템에 설치했는지 감지하고 기본적으로 사용합니다.

반대쪽은 입니다. Rspec입니다. Rspec은 통합 테스트를위한 도구가 아니라 BDD 방식의 단위 테스트 용 도구입니다. http://www.pragprog.com/titles/achbd/the-rspec-book에서는 매우 명확하게 설명되어 있습니다. 오이는 응용 프로그램 동작의 바깥쪽에 있고 rspec은 클래스 동작의 내부 원 안에 있습니다. rspec에 대한 대안은 클래식 Test :: Unit 클래스입니다. 자세한 내용은

은 다음을 참조하십시오 요약

+1

스테이크 (https://github.com/cavalle/steak)는 오이의 또 다른 대안입니다. – raidfive

+0

좋은 답변이지만 Cucumber, Capybara, Webrat, RSpec 및 Unit :: Test에 대한 링크를 추가하는 것이 좋습니다. 나는 당신이 더 많은 표를 얻을 것이라고 생각합니다. – jwfearn

+0

@ jwfearn, 고마워요! – David

0

, 세 가지 모두을 사용하십시오.

  • 사용 RSpec에

    ... 격리에 모델, 컨트롤러, 헬퍼의 시험 방법에 대한.

  • 단위 테스트라고도합니다.

사용 오이 ...

  • ... 응용 프로그램의 높은 수준의 기능을 테스트합니다.
  • 통합 테스트라고도합니다. 모든 조각이 함께 작동하는지 확인합니다.
  • 사용자의 관점에서 테스트하기에 좋습니다. 오이

사용 카피 바라 ...

  • ... 브라우저를 통해 것 사용자처럼 응용 프로그램을 탐색합니다.
  • ...보기를 테스트하기위한 ... 사용자가 볼 것으로 예상되는 내용이 포함되어 있습니다.