문제

빠른 소개가있는 2 패터. 소개 : 저는 Perl에서 Ruby에 왔으며 테스트 프레임 워크 선택에서 약간 길을 잃었습니다. 나는 아마도 독신이 없다는 것을 이해합니다. 베스트 선택, 그러나 나는 경기장의 명확한 그림을 얻을 수 없습니다.

먼저, 미니 스트 또는 테스트 :: 단위? 방금 1.9.1 기본값이 지금 가장 미성조라는 것을 깨달았습니다. 모든 오래된 테스트 :: 단위 자습서가 여전히 잘 작동하기 때문에 눈치 채지 못했습니다. 만약 너라면 require test/unit, 당신은 실제로 테스트 :: 단위 에뮬레이터 (!)로 가장 미세하게 얻습니다. 저의 초기 생각은 기본 선택을 선택하는 것이었지만 (내가 거기에 있다는 것을 알았을 때) 최근의 책조차도 가르치는 데 관심이없는 것 같습니다. 루비 모범 사례 두 사람 사이에 "상당한 차이가있다"고 말하지만, 그는 그들을 다루지 않기로 선택합니다. 또한 Test :: Unit (일부 사용자 정의 추가 기능)을 통해 모든 테스트를 실행합니다. 새로운 곡예물은 또한 Minitest에 대해서는 거의 없습니다 그 자체, 테스트에 관한 장에서는 Minitest의 Test :: Unit Emulation 버전도 사용합니다. 첫 번째 질문을 명확히하기 위해 : Minitest가 열악한 첫 번째 옵션입니까? 테스트 :: 장치 에뮬레이터 사용에 기본값을해야합니까?

둘째, 내장 옵션 외에도 행동 중심 테스트를위한 RSPEC, Cucumber & Company가 있습니다. 커뮤니티 가이 스타일 과이 프레임 워크를 향해 강력하게 기울어지고 있습니까? RSPEC로 시작해야합니까?

나는 세 가지 모두와 조금씩 플레이 할 것이지만 루비 1.9에서 테스트를 중심으로 어떤 종류의 합의 (있는 경우)가 어떤 종류의 합의를 받고 있는지 궁금합니다.

(나 자신과 관심있는 사람을 상기시켜주는 빠른 후속 조치. 이 링크 다양한 루비 1.8 ~ 1.9.1에서 테스트 :: 단위 및 미니 테스트에 대한 다양한 호출에 대한 유용한 개요를 위해.)

도움이 되었습니까?

해결책

합의가 있습니까? 말하지 말고 싶습니다. TDD/BDD를 사용하는 데 강력한 커뮤니티 목소리가 있지만 보편적이지는 않습니다. 프레임 워크는 처음에 실습을 적용하는 것보다 덜 중요 할 것입니다.

Minitest는 1.9 Test :: Unit의 대체품이라고 생각하며, 이는 후진 호환성을 위해 새 라이브러리 주변의 래퍼로만 존재합니다. 가장 미세한 경로를 취하는 것이 더 미래 지향적 일 것이라고 생각합니다.

RSPEC는 다소 다른 테이크입니다. "전통적인"Xunit에 영향을받는 프레임 워크에 의해 덜 주입되었습니다. 당신이 그것을 선호하는지 확인하기 위해 시간을 보내는 것이 좋습니다.

또한 있습니다 멍청이. 테스트가 얼마나 테스트되었는지는 모르겠지만 1.9 : Test :: Unit의 래퍼/확장에 더 가깝기 때문에 아마도 효과가있을 것입니다.

물론 재미는 거기서 멈추지 않습니다. 일단 테스트 프레임 워크를 선택하면 어떤 종류의 조롱 엔진을 원할 것입니다. 또는 데이터 비품 교체.

모든 경우에, 나는 당신이 정기적으로 업데이트의 증거, 개방적이고 인구가 많은 커뮤니티 및 당신이 싫어하지 않는 API를 찾을 수있는 프레임 워크를 말하고 싶습니다. 당신이 무엇을하든 나중에 어떤 선택을했는지에 대해 격추 될 것 같지 않습니다.

다른 팁

나는 1 년 정도 RSPEC을 사용해 왔습니다. 테스트중인 것을 읽을 수있는 방식으로 인쇄 할 수 있기 때문에 Test :: 장치에서 구체적으로 전환했습니다.

산문처럼 읽습니다. 그것은 나에게 큰 플러스입니다. 그러나 모든 것과 마찬가지로 결과는 다릅니다.

describe Model do
  it "should do what I want" do
    this.should == that
    it.should be_nil
    that.should_not be_true
  end
end 

또한 테스트 프레임 워크의 reguardless와 같은 커버리지 도구에 대해 생각해야합니다. RCOV. RSPEC와 통합되며 코드에 테스트가없는 위치를 알려줍니다.

RSPEC는 "The Rails Way"와 같은 인기있는 Rails 책의 합의입니다. Pros IMHO는 영어처럼 읽은 테스트, 영어와 같이 읽는 출력 형식 및 비행 비행기입니다. 단점은 속도가 느리고 도서관은 때때로 루비 및 단위 테스트에 더 익숙한 코더에게 "마법"을 느낍니다. RSPEC은 또한 오이와 게르킨을 제공하는데, 이는 유용한 고객 수용 인 사용자 스토리를 작성하는 방법입니다.

Minitest는 Ruby 1.9에 내장되어 있습니다. Pros IMHO는 빠른 속도이며 다른 언어의 코더에 대해 읽기/쓰기가 매우 쉽고 실제 코드에서 사용하는 동일한 코드 스타일을 사용하는 테스트입니다. Minitest는 대부분의 사람들이 알고있는 것보다 훨씬 더 많은 것을 가지고 있습니다. 예를 들어 Minitest Spec은 RSPEC와 유사한 BDD 매칭을 가지고 있으며 Minitest Mock은 조롱 시스템이며, Minitest 벤치 마크는 성능 프로파일 링을위한 것입니다.

내 개인적인 경험에서, 레일 앱을 구축하는 사람들은 RSPEC를 향한 경향이 있으며 순수한 루비 코드를 구축하는 사람들은 가장 미니 최소 유닛, 사양, 모의, 벤치 마크 등을 향한 경향이 있습니다.

나는 개인적으로 rspec을 퍼포합니다. 나는 내 시험에 집중하는 것이 실제로 내가하려는 일을 돌아 다니는 데 도움이된다는 것을 알았습니다.

RSPEC을 사용하면 공장 소녀 나 기계공과 같은 것을 얻으려면 테스트 데이터를 생성하고 비품을 사용하지 마십시오.

Mike의 말과 관련하여 RSPEC 프로젝트는 프레임 워크의 개발에 도움이되도록 각 버전의 레일과 함께 새로운 버전이 정상적으로 출시 될 예정입니다.

RSPEC은 좋지만 최근에 많은 대화와 운동이 있었다고 생각합니다. 미세한 루비 1.9.x와 함께 제공됩니다. 그것은 RSPEC의 많은 니스를 가지고 있지만 훨씬 더 얇고 간결합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top