2011-03-21 3 views
9

레일즈 3 애플리케이션에 대한 자동 테스트를 작성하고 싶습니다.Rails 애플리케이션 테스트를 시작하는 방법은 무엇입니까?

어떻게 시작 해야할지 궁금합니다.

Selenium/RSpec/Cucumber에 대해 들었습니다. 더 많은 옵션이 있다고 생각합니다.

이러한 테스트 프레임 워크의 장점/단점은 무엇입니까? 그 중 최고의 문서가있는 것은 어느 것입니까? Ruby 세계에서 가장 인기있는 것은 어느 것입니까? 그리고 업계에서는 전혀?

나는 테스트 작성 방법에 대한 일반적인 지식을 가지고 있습니다. Rails 애플리케이션을 테스트하기위한 적절한 테스트 프레임 워크를 배우기를 원할뿐입니다.

시작할 테스트 프레임 워크를 결정하는 데 도움을주십시오.

+3

모든 아주 좋은 질문입니다. IMO, 테스트와 관련하여 Rails의 많은면에 대한 응집력/이해가 부족합니다. – Zabba

+0

[metabates.com] (http://www.metabates.com/)에 대한 좋은 기사입니다. – Zabba

답변

2

다양한 측면에서 레일 및 기타 웹 응용 프로그램을 테스트 할 수있는 많은 도구가 있습니다. 그러나 만약 당신이 처음으로 을 테스트한다면 레일즈 자신의 테스트 프레임 워크을 배우기 시작하기 전에 다른 툴을 사용하기를 권장합니다.

하나의 테스트 프레임 워크를 배우고 나중에 마스터 링하면 장래에 다른 프레임 워크와 함께 장단점을 이해하고 조화롭게 작동하게 할 수 있습니다.

다음과 같은 것들을 테스트를 시작할 수 :

  • 기능 테스트 귀하의 컨트롤러
  • 일정에 대해 알아보기 및 테스트 데이터를로드하는 방법에 대한

    • 단위 테스트 모델을

    나는 많은 실패한 테스트 노력을 보았지만 잘못된 툴/프레임 워크를 선택했기 때문에 실패한 것을 결코 보지 못했습니다. 테스트 도구는 사용하는 도구를 마스터하는 방법을 모르고 테스트에 대한 기본 사항을 충분히 배우기 때문에 실패합니다.

    레일 테스트에 대한 자세한 내용은 여기를 참조하십시오.수동 테스트에 대한
    http://guides.rubyonrails.org/testing.html

    매뉴얼 나는 그것이 이럴 테스트를 자동화 된 사랑만큼 예비 테스트
    , 대체하지 않습니다. 주된 이유는 자동화 된 사람 만이 말한 것을 수행 할 수 있고 합격/불합격으로 알리는 정보 만 검증하기 때문입니다. 인간은 지능을 사용하여 결함을 찾고 다른 것을 테스트하는 동안 나타나는 질문을 제기 할 수 있습니다.
    여기 내 대답의 또 다른에 자동 및 수동 테스트를 혼합에 대한 자세한 내용 :
    What test methods do you use for developing websites?

    1

    가장 쉬운 방법은 TestUnit입니다. 스캐 폴딩을 사용하여 모델, 뷰, 컨트롤러를 생성하면 테스트 환경 설정 파일 및 테스트를 포함하는 테스트 폴더가 자동으로 생성되거나 레일 제너레이터를 사용하여 기존 모델에 테스트를 추가 할 수 있습니다.

    그런 다음에는 TestUnit에서 상당한 금액이있는 문서를 읽으 려합니다.

    내 개인적인 선호는 오이에 RSpec을 사용하는 것입니다 - 오이가 유지하기 어렵다는 것을 알았고 사장이 읽을 수있는 테스트를하는 것이 좋았지 만 대부분의 보스 테스트를 읽거나 기여하고 싶지는 않으며, 시간 소모적 인 개발을 위해 만들어졌으며 다양한 파일에 작은 텍스트가 많이 흩어졌습니다.

    오른쪽으로 이동하여 RSpec for Rails를 사용하려면 Rspec-Rails을 권장합니다. 여기에는 응용 프로그램의 올바른 작동을 주장하는 데 도움이되는 많은 헬퍼가 포함되어 있습니다.

    나는 계속 할 수 있었지만 '어디에서 시작해야 할까?'라는 질문을했습니다. 좋은 장소가 두 곳 있습니다.

    +0

    의견을 보내 주셔서 감사합니다. 셀레늄에 대해서는 아무 말도하지 않았다. RSpec과 Selenium은 여러 유형의 테스트를위한 것입니다. 그게 맞습니까? –

    +0

    Misha : 브라우저에서 렌더링 된대로 앱을 테스트하는 경우 RSpec을 Selenium과 함께 사용할 수 있습니다 (Selenium은 브라우저 드라이버 임). – carols10cents

    +0

    브라우저로 가장하기 위해 사용하는 것은 당신에게 달려 있습니다. RSpec으로 잘 작동합니다. 나는 설정하기가 쉽기 때문에 Webrat을 사용합니다. – stef

    2

    셀렌은 사용자 인터페이스의 테스트를 자동화하는 프레임 워크입니다. Selenium 스크립트는 브라우저 창을 시작하고 웹 페이지로 이동하여 페이지 요소를 조작합니다.

    RSpec에오이는 "행위 주도 개발 (BDD)"라고 무엇을위한 도구입니다. BDD는 별도의 기능에 대한 설명과이 기능을 검사하는 일부 스크립트 (Selenium 스크립트 일 수 있음)가있는 개발 프로세스입니다. RSpec과 Cucumber는 기본적으로이 두 가지를 연결하여 테스트 스크립트를 실행할 때 일반 언어로 작성된 기능 목록과 테스트 상태를 볼 수 있습니다.

    셀레늄 스크립트는 number of languages으로 작성 될 수 있으며 오이 스크립트는 루비를 사용합니다. 문서화는 모두 OK이지만 프로그래밍 언어에 대한 지식은 필요합니다.

    시작 링크 :

    1

    당신이 당신의 루비/레일 코드를 테스트하는 데 도움 프레임 워크의 무리가 있습니다 ... 좋은 점은 루비의 동적 특성이 당신에게 많은 유연성을 제공합니다.

    RSpec을 사용하여 내 코드의 내부를 테스트하고 Cucumber를 사용하여 응용 프로그램의 동작을 테스트하고 싶습니다. 그래서 일반적으로 RSpec은 모델과 메소드를 테스트 할 것이고 Cucumber는 브라우저를 통해 사용자 상호 작용을 테스트합니다.

    BDD using RSpec on Cucumber에 대한 실용적인 프로그래머 전자 북을 적극 권장합니다.

    +0

    참고 : 개인적으로 셀레늄을 권하지 않습니다. 브라우저/사용자 상호 작용을 테스트하기 위해 Capybara를 사용하여 Cucumber와 함께 할 것입니다. –

    +0

    Jesse : Capybara는 자바 스크립트를 테스트하는 경우 브라우저 드라이버로 Selenium을 사용할 수 있습니다. 그들은 상호 배타적이지 않습니다. – carols10cents

    +0

    @carolclarinet 좋은 지적 –

    2

    을 언급하지 않았다 (도 cukes라고도 함); 공동체는 어떠한 방식 으로든 표준이되는 것을 확실히 결정하지 않았습니다.

    Pragmatic Programmers에서 The RSpec Book을 강력하게 추천합니다.이 책의 약 절반은 Cucumber, RSpec 및 Selenium과 같은 브라우저 시뮬레이터를 사용한 레일스 테스트입니다. Rails를 통해 얻을 수있는 다양한 상황과 각 상황에서 사용할 도구에 대한 포괄적 인 개요입니다.

    관련 문제