2013-03-18 5 views
2

에 실패Mongoid 발판 시험 설비

스캐 폴딩 생성하고, 최소한의 응용 프로그램은 실행됩니다
rails g scaffold building height:Integer name:String 

벌금. 그러나 발판 생성 된 테스트는 실패 :

NoMethodError: undefined method `buildings' for #<BuildingsControllerTest:0x007fa6afbf78d8> 

기분을 상하게하는 라인은 테스트 컨트롤러는 비품 찾을 수 있음을 보여줍니다 다음 mongoid 발전기 나타내는 test/fixtures/buildings.yml에 비품을 만들 정도로 좋았다

@building = buildings(:one) 

을 비계에 대한 기능 테스트의 전체 아이디어와 어느 정도 협력.

mongoid의 비품을로드하기 위해 기능 테스트를 받기 위해 변경해야 할 구성 설정이 있습니까? 아니면 스캐 폴딩 기능 검사가 몽구스로 실패 할 것으로 예상됩니까? (그렇다면 왜 몽고 인은 조명기 파일을 만드는 것을 방해합니까?)

+0

테스트 단위 또는 rspec을 사용하고 있습니까? – gylaz

+0

Scaffold는 test-unit/minitest에 기반을 둔'ActiveSupport :: TestCase' 하위 클래스를 테스트합니다. – Leopd

답변

3

개인적인 홍보 목적이 아니지만 여러 번이 문제에 봉착했기 때문에 많은 다른 사람들에게 도움이 될 것이라고 생각하기 때문에 github에서 사용할 수있는 mongoid-fixture_set을 만들었습니다. 같은 일에 의해 ActiveRecord 수행됩니다

class ActiveSupport::TestCase 
    include Mongoid::FixtureSet::TestHelper 
    self.fixture_path = "#{Rails.root}/test/fixtures" 
end 

:

은 내가 많은 코드를 포팅로, 당신은 단지 테스트 클래스에 스스로를 묶어 가지고, 더 많거나 적은 같은 ActiveRecord::FixtureSet로 작동 'lib/rails/test_help.rb'의 railties에있는 레일

+0

귀하의 보석은 RSpec과 함께 작동합니까? – izaban

+0

@izaban은 테스트 한 적이 없지만 흥미가 있다면 github에 문제를 만듭니다. 또한 코드를 검토하고 개선해야합니다. – Geoffroy

0

몽고 이드는 즉시 구입 한 조명기 (source)를 지원하지 않습니다. 나는 비품을 잊어 버리고 공장 루트를가는 것이 좋습니다. factory_girl은 훌륭한 옵션입니다.

0

그래, 내 생각 엔 그게 fixtures is a part of ActiveRecord인데 그 중 하나가없는 것 같습니다 ("rails new tddapp --skip-active-record").

FactoryGirl은 꽤 쉬운 전환입니다. 실망 스럽지만 사용 가능하지는 않습니다.