2017-05-05 2 views
0

수동으로 확인하고 작동하는지 볼 수 있지만 내 create 메서드가 쿠키를 추가하고 내 레코드를 만드는 것을 보여줄 rspec 테스트를 원합니다. 현재 코드로는 쿠키가 발견되지 않습니다 ... 어떤 아이디어입니까?쿠키를 만들었을 때 RSpec 테스트하기

내 시험 :

describe "POST create" do 
    subject { post :create, table: FactoryGirl.attributes_for(:table) } 
    it "creates table" do 
    expect { subject }.to change(Table, :count).by(1) 
    end 
    it "bakes cookies" do 
    expect(response.cookies["my_cookie"].to exist) 
    end 
end 

내 컨트롤러 :

여기
def create 
    @table = Table.new(table_params) 
    if @table.save 
     bake_cookie @table.id 
     redirect_to show_table_path, notice: "Table created." 
    else 
    ... 
end 

def bake_cookie table_id 
    cookies["my_cookie"] = { value: table_id, expires: 12.hours.from_now } 
end 
+0

'쿠키를 굽히는'오식은 그 주장입니까? –

답변

0

올바른 코드 :

it "bakes cookies" do 
    subject 
    expect(!!response.cookies["my_cookie"]).to eq true 
end 

원래 코드는 subject을 가지고 있지 않은 create 방법 때문에 실제로 실행 된 적이 없다. 또한 사용되지 않는 exist을 사용했습니다.

관련 문제