2012-09-13 3 views
1

저는 RSpec을 처음 접했습니다. 그것은 일부 설명서에 권장 된대로 Ruby on Rails RSpec이 데이터베이스를 삭제합니다

나는, 구성 파일의

= 거짓

config.use_transactional_fixtures을 가진, (레이크 사양 명령을 사용하여) 몇 가지 예를 RSpec에 사양을 실행하고 싶었다 .

그러나 여전히 데이터베이스를 지워 버리며 민감한 데이터가 있었기 때문에 나를 실망 시켰습니다. 이제는 모두 사라졌습니다. 테스트 도중 데이터베이스를 지우는 아이디어가 실제로 대체 누구에게 떠오르습니까?

이 동작을 방지하려면?

미리 감사드립니다.

답변

2

테스트가 깨끗하고 예측 가능한 상태로 유지되도록 테스트 데이터베이스가 깨끗하게 유지되도록해야합니다. 당신이 그들을 사용해야합니다. 단일 예제 그룹에서 이들을 끄려면 describe 행 다음에 self.use_transactional_fixtures = false을 사용하십시오. 그러나 만약 당신이 이것을한다면 나중에 after(:each) 블럭이 필요합니다.

테스트 데이터베이스에 중요한 데이터가있는 이유를 이해하지 못합니다. 뭔가 잘못된 것처럼 보입니다.

+0

그럼이 기능을 완전히 끌 수 없다고 할 수 있습니까? – Dmitri

+0

그리고 어떻게해야합니까? 흠? 예를 들어 내 웹 응용 프로그램이 이미 실행 중이라면 어떻게해야합니까? 몇 가지 새로운 기능을 테스트하고 모든 데이터를 삭제합니까? 또는 무엇을 ? – Dmitri

+0

당신은 그것을 끄기 위해 당신이 사용했던 설정을 사용할 수 있어야하지만, 여전히 잘못된 데이터가있는 것처럼 데이터가 깨끗 해지면 말입니다. 테스트를 마친 후에 DB 전체를 지우지 않는 한 계속 유지하는 것이 좋습니다. 이것이 만족스럽지 않으면 무언가를 잘못하는 것이므로 신뢰할 수 없으므로 설치 프로그램에서 작성한 테스트를 귀찮게해서는 안됩니다. – FluffyJack