문제

저는 레일 앱을 설정 중이고 방금 몇 가지 단위 테스트를 마쳤는데 제 친구가 분명히 픽스쳐가 더 이상 멋지지 않고 사람들이 이제 RSpec이나 shoulda를 사용하고 있다고 말했습니다.이러한 다른 툴킷을 사용하면 실제 이점이 무엇인지 궁금합니다.어떤 정보라도 감사하겠습니다.

-fREW

도움이 되었습니까?

해결책

RSpec 및 유사한 프레임워크는 행동 중심 개발을 지원하도록 설계된 도구입니다.테스트를 작성하는 데 도움이 되기는 하지만 더 보기 좋은 방법은 아닙니다.

여기에는 BDD에 대한 많은 정보가 있습니다. http://behaviour-driven.org/그리고 위키피디아: http://en.wikipedia.org/wiki/Behavior_Driven_Development

여기에 나열하기에는 혜택이 너무 많기 때문에 해당 사이트를 조금 검색해 보는 것이 좋습니다.

다른 팁

저는 개인적으로 RSpec보다 Shoulda를 선호합니다.나는 Shoulda가 RSpec보다 마법 구문이 적다는 것을 알았습니다.RSpec의 문제점은 소리내어 읽을 때는 매우 읽기 쉽지만, 막상 써보면 흠, 확신할 수 없다는 것입니다. 어떻게 주어진 주장을 작성해야 합니다. Prag Dave가 나보다 문제를 더 잘 설명합니다..그 또한 좋아한다 몇 가지 예가 있습니다.

여기에는 두 가지 다른 사항이 있습니다.

첫 번째는 테스트/사양 작성에 사용할 프레임워크입니다.여기서 Test::Unit, RSpec, Shoulda 등 중에서 선택할 수 있습니다.선택은 전통적인 TDD(Test::Unit)를 수행할지 아니면 개발자가 옹호하는 동작 지정에 대한 대체 사고 방식을 선호하는지 여부입니다. 데이비드 쳄린스키 (RSpec 및 어느 정도 Shoulda).

두 번째는 테스트 데이터를 처리하는 방법입니다.다음과 같은 다른 목표로 설계된 Rails 고정 장치 및 대안이 있습니다. FixtureReplacement 플러그인.Rails 2.0 이전의 픽스처에는 중요하고 잘 문서화되어 있는 실제적인 문제가 있었습니다.Rails 2.0에서는 많은 실질적인 문제가 수정되었습니다.그러나 고정 장치는 부주의한 테스트 결합으로 이어질 수 있으며 일부 대안에서는 이를 방지하려고 합니다.

RSpec은 테스트를 읽고 쓰는 것이 훨씬 쉽기 때문에 훨씬 더 강력합니다.또한 모의 객체와 스텁을 사용할 때 매우 우아하며, 이는 테스트에서 사용하기 시작하면 매우 유용하게 될 개념입니다.간단한 테스트 앱(NON RAILS!)에서 사용해 보면 동등한 표준 테스트에 비해 사양이 얼마나 우아한지 확인할 수 있습니다.

Josh Susser의 글을 확인해보세요 훌륭한 테스트 프레임워크 댄스 오프 인기 있는 Ruby 테스트 프레임워크를 비교해 보세요.

대규모 애플리케이션을 구축 중이고 블랙박스 테스트로 잘 테스트할 수 있고 많은 모의 및 스텁을 사용/디버깅할 준비가 되어 있는 분리된 코드를 작성하는 데 능숙한 팀이 없다면 하지 마십시오. 공장 길로 내려가지 마세요.

Awesome Factory Are에 대한 내용을 읽을 때마다 공장이 설비보다 약간 느리기 때문에 대규모 응용 프로그램에서 실행 가능하지 않을 수 있다는 약간의 주의 사항을 보게 될 것입니다.

그러나 "조금 더 느리게"는 실제로는 몇 배 더 느린 것입니다.

픽스처를 체계적으로 유지하는 한 팩토리는 ID에 레이블을 사용하는 픽스처보다 코딩하기가 훨씬 쉽지 않습니다.그리고 어떤 경우에는 팩토리를 디버그하기가 더 어렵습니다.

바로 오늘 밤 저는 단일 팩토리를 픽스처로 변환했고, 해당 테스트 파일의 테스트 중 약 15%만이 해당 팩토리를 사용했음에도 불구하고 이를 사용한 테스트 파일의 런타임이 65초에서 15초로 늘어났습니다.

minitest를 사용하면 테스트를 무작위 순서로 실행할 수 있습니다.이를 통해 테스트 간의 데이터 결합을 빠르게 확인할 수 있습니다.(rspec에 테스트 순서를 무작위로 지정하는 옵션이 있는지 확실하지 않음)

Test::Unit은 소규모 응용 프로그램에 적합합니다.그러나 Shoulda나 RSpec과 같은 테스트 프레임워크를 사용하면 많은 이점이 있습니다.g.맥락!!

나는 Shoulda와 RSpec을 둘 중 하나 또는 관계로 보지 않습니다.단일 어설션 테스트의 경우 RSpec 대신 Shoulda를 사용합니다.나는 Shoulda one-liners를 정말 좋아하지만 RSpec에서는 매처 작성이 훨씬 쉽습니다.그래서 제가 조언하는 것은 가장 적합한 다양한 테스트 도구를 사용하는 것입니다.

RSpec보다 훨씬 빠른 Cucumber와 같은 테스트 프레임워크를 사용할 수 있습니다.

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