如果创建了cookie,则进行RSpec测试

时间:2017-05-05 06:12:03

标签: ruby-on-rails cookies rspec ruby-on-rails-5

我可以手动检查并查看它是否有效,但我想要一个rspec测试,它会显示我的create方法添加cookie以及创建我的记录。使用我当前的代码,没有找到任何cookie ...任何想法?

我的测试:

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

1 个答案:

答案 0 :(得分:0)

这是正确的代码:

 <link rel="stylesheet" href="lib/@angular/material/core/theming/prebuilt/indigo-pink.css">

原始代码没有it "bakes cookies" do subject expect(!!response.cookies["my_cookie"]).to eq true end ,因此subject方法实际上从未运行过。它还使用了不推荐使用的create