2011-01-24 4 views
2

저는 Michael Hartl의 튜토리얼 http://railstutorial.org/을 살펴 보았습니다. 대부분 Rails를 시작하는 데 큰 도움이되었습니다. 이 책은 TDD에 중점을두고 있습니다. TDD를 배우고 싶어서 좋았지 만 문제는 "전자 메일이 이미 사용되었습니다"라는 오류로 90 %의 테스트가 실패합니다. 테스트가 실행될 때 책에 제안 된대로 "[email protected]"전자 메일을 사용하여 사용자를 만듭니다. 문제는 사용자를 생성해야하는 두 번째 테스트가 실행될 때, 동일한 "[email protected]"전자 메일 주소를 사용하는 경우입니다. 나는 일련의 이메일 주소를 생성하기 위해 공장 소녀를 사용하여 보았던 해결 방법이 있음을 알고 있지만 제대로 작동하는 튜토리얼에서 예제를 얻으려고해서는 안된다.ruby ​​on rails 튜토리얼 TDD "이미 이메일을 받았습니다"

이 문제가 발생한 사람이 있습니까? 이 특정 주제에 대한 질문이 없다고 판단하여 내 코드에서 버그라고 생각하지만 다른 사람이이 문제에 직면했을 수 있습니다.

답변

2

찰흙을! 문제는 주석 처리 된 행입니다.

config.use_transactional_fixtures = true 

in spec_helper.rb!

새내기 실수.

0

각 테스트 후에 데이터베이스를 정리하는 방법에 대한 항목을 검색해야합니다. 이슈는 조명기에서로드 한 기본 사용자에 의해 발생 될 수 있으며 테스트에서 hin을 다시 작성할 때 발생할 수 있습니다. 그러나 90 %라고 말하면 첫 번째 경우처럼 보입니다. rspec, test :: unit 또는 cucumber를 사용할 때 차이가 생기기 때문에 링크를 첨부하지 않습니다. 링크마다 각각의 장점이 있습니다.

해피 코딩!

0

최근에도이 문제가있었습니다. 테스트 DB는 테스트 후 청소해야하지만 어떤 이유로 든 복구되지 않았습니다. 내가 한 모든 작업은 'rake db : reset'을 실행하여 모든 것을 재설정 한 다음 공장 (공장 걸)을 사용하고 있는지 확인합니다. 조명기 나 공장 중 하나를 사용해보십시오. 그래서 실제로 데이터베이스를 때리는 것이 아니라는 것을 알 수 있습니다.

+0

rake db : reset은 나를 위해 해결되지 않고 공장도 사용하고 있습니다. 첫 번째 테스트의 테스트 결과 : 89 개의 예제, 49 개의 실패 두 번째 테스트 : 89 개의 실패, 51 개의 실패 – Adam

0

CH 11의 끝 부분에서 유사한 동작이 나타났습니다. spec_helper.rb가 정확했습니다. 이것은 나를 위해 그것을 고정 :

다시 시작 "레일의"
다시 시작 자동 측정
레이크 dB : 시험 :
레이크 DB 마이그레이션 :
레이크 DB를 다시
레이크 DB 준비 : 채울를

HTH , 페리