저는 Rspec과 Capybara를 처음 사용합니다. 방문 root_pathrspec : 정의되지 않은 메서드 'testimonials'for nil : NilClass
NoMethodError : 정의되지 않은 메서드`평가 '전무을 위해 : NilClass 내가 노력
하기 위해 두 가지 방법을 보자 내가지고있어 오류가 방문 갤러리
장애/오류 홈페이지에서 탐색하다 스펙에 변수를 정의하십시오. 나는 내가 잘못하고있는 것에 대한 피드백을 얻을 수 있도록 두 가지를 모두 추가했다.
class WelcomeController < ApplicationController
def index
@event = Event.last
@event.testimonials.first ? @latest_testimonial = @event.testimonials.first.id : @latest_testimonial = nil
end
end
feature 'Navigation from homepage' do
before :each do
visit root_path
find('#nav-menu').find('h1').click #opens up navigation bar
end
scenario 'Visit Gallery' do
find('#nav-gallery').find('.no_bar').click
let(:event) {Event.last} #1st attempt at solving Rspec error.
let(:event) {mock_model(Event, id: 3, name: "Jack & Jill", date: "2004-06-10", created_at: "2014-03-10 02:57:45", updated_at: "2014-03-10 02:57:45")} #2nd attempt at solving Rspec error.
controller.stub(:event)
expect(page).to have_css 'img.photos'
end
end
기능 테스트에서 모의 / 스텁을 사용하는 것이 좋지 않습니까? 필자는 제안대로 Factory Girl을 구현했습니다. – ltrainpr
내 자신의 환경 설정은 통합 테스트에서 지속 된 객체를 사용하는 것이지만 제 생각에는 많은 것을 저장하지 않습니다.FactoryGirl을 사용하면 stubbed 버전의 객체를 빌드하여 DB를 사용하지 않으려 고하는 위치에 피할 수 있습니다. –