2010-08-12 3 views
0
  1. 스텁 아웃을위한 몇 가지 복잡한 객체가 있습니다 (사용하는 젬의 인스턴스). 이 스텁들을 모든 테스트에서 사용할 수 있도록 중앙 집중화 할 수 있습니까?일부 레일 유닛 테스트 질문 (Shoulda + Factory 소녀 사용)

  2. RAKE없이 테스트간에 DB를 프로그래밍 방식으로 지울 수 있습니까? 텍스트 메이트를 통해 개별 테스트를 신속하게 실행하려고하지만 테스트간에 DB를 지우지 않으므로 오류가 발생합니다.

  3. Rails 인스턴스를 회전시켜야하므로 테스트가 느립니다. 테스트 속도를 높이려면 어떻게해야합니까? 테스트를 작성하고 신속하게 실행하고자하는)

+0

다른 옵션은 Textmate를 통해 테스트를 실행하는 대신 autotest를 사용합니다. http://ph7spot.com/musings/getting-started-with-autotest – house9

답변

2

1을 변경 특히 동안 모든 테스트에이를 사용할 수 test_helper.rb에 넣을 수 있습니다 또는 당신은 포함 다음 그 방법을 포함하는 자신의 모듈을 작성하고 수 그 스텁을 필요로하는 테스트 모듈. 당신은 당신이 더에 더 이상 관심이 그 모델을 제거하기 위해 테스트 설정 방법에 빨리 될 것 Model.destroy_all (또는 .delete_all 해당되는 경우)를 넣을 수

2). 그러나

, 당신은에서 테스트를 실행하는 경우 트랜잭션 (및 데이터베이스가 트랜잭션을 지원하는 경우) 데이터 작성 및 테스트가 트랜잭션에서 실행되므로 데이터를 자동으로 지우는 롤백이 수행되므로 데이터를 지울 필요가 없습니다.

3)이 항목에 대해서는 확실하지 않습니다. 이 문제는 Windows에서 많이 개발되었지만 * nix에는 그다지 많지 않았습니다. 일종의 지속적인 테스트를 들여다 볼 수는 있지만 피드백에 대해서는 여전히 지연 될 수 있습니다. 레일 환경이 느리게 시작되는 원인을 조사하는 것이 가치가있을 수 있습니다. 테스트 환경에서 건너 뛸 수있는 것일 수 있습니다.