0

저는 RSPEC을 처음 사용하고 컨트롤러를 테스트 중입니다. 는 때때로 테스트가 통과함께 작동하지만 혼자 지나갈 때 테스트가 실패합니다.

rspec spec/controllers/controller_name_spec.rb 

처럼 혼자 전달하는 일이 있지만 실행할 때 : - 이전 통과

rspec spec 

테스트가 실패, 동일한 테스트.

rspec의 확장 성 또는 응용 프로그램 관련 문제와 관련된 이유가 무엇일 수 있습니다. 통합 테스트에서도 동일한 문제가 발견되었습니다. 레일 -v => 3.2.11 루비 -v => 1.9.2p320 RSpec에 레일 버전 => 2.13.0 RSpec에 버전 => 2.13.0

예 -

테스트 케이스 : -

it "should do ##something##" do 
    plans=Plan.pluck(:id) 
    plans.delete(@user.subscription.plan.id) 
    @user.subscription.stripe_customer_token= "cus_1l9m6CicQEXZJ0" 
    @user.save 
    get 'apply_change_account', {:subscription=>{:plan_id=>plans.sample}} 
    flash.now[:success].should_not be_nil 
    response.should redirect_to dashboard_manage_accounts_path 
end 

응답 오류 메시지 : - 사전

에서

1) DashboardController Dashboard should do ##something## 
    Failure/Error: flash.now[:success].should_not be_nil 
     expected: not nil 
      got: nil 
    # ./spec/controllers/dashboard_controller_spec.rb:119:in `block (2 levels) in <top (required)>' 

감사합니다

+0

테스트 코드 및 실패 메시지를 보내주십시오. –

+0

@BillyChan은 테스트 케이스를 편집하고 추가했습니다. –

+0

제가 생각할 수있는 유일한 이유는 테스트 중에 데이터베이스가 지워지지 않았기 때문입니다. 어쩌면 그게 사실인지 확인하고 database_cleaner gem을 설치할 수 있습니다. –

답변

1

플래시와 관련된 모든 테스트에 대해 블록 전에 앞에 flash.clear을 추가하십시오.

이 문제는 해결 될 수도 있지만 해결되지 않을 수도 있지만 플래시 관련 항목을 테스트하여 플래시 객체가 오염되지 않도록해야합니다.

관련 문제