2011-09-17 4 views
5

Ruby on Rails 3.0.9와 RSpec 2를 사용하고 있습니다. RSpec과 before_validation 콜백을 사용할 때 몇 가지 알려진 문제점이 있습니다. 왜냐하면 가 스펙 파일에서 실행될 때 트리거되지 않는 것 같기 때문입니다. 비슷한 문제가 많이 있습니다 (예 : Google search로 수행).Rspec 및 'before_validation'콜백 문제

이 시점에서 사람이이 문제에 대한 해결책을 생각해 냈는지 궁금합니다.

P.S. : 일부 사람들은 mock을 사용하도록 제안했으며, 다른 사람들은 before_validation에서 다른 콜백 (예 : before_save)으로 전환하거나 save(:validate => false) 메소드를 사용하여 유효성 검사를 건너 뛰도록 제안했습니다. ... 그러나 아무도 "진짜"문제를 해결하지 못한 것 같습니다. 문제를 해결하기 위해 그런 경우에 어떻게해야한다고 생각합니까?

+1

'before_validation'은 테스트에서 트리거되지 않을 이유가 없습니다 - 모델 테스트는 설정 중에 특별한 일을하지 않습니다. 솔직히 사람들은 이러한 종류의 테스트를 작성하는 법을 모른다고 생각합니다. 시험에 통과하려고하십니까? –

+0

+1은 작동하지 않는 예를 나타냅니다. before_validation 체크와이를 검증하기 위해 작성한 스펙을 가진 간단한 모델을 제공하십시오. –

+0

http://stackoverflow.com/questions/7361036/rspec2-testing-a-before-validation-method 전화 했습니까? –

답변

0

mock을 사용할 수 없다면, reload 메소드를 사용하여 인스턴스를 다시로드 해보십시오.