我试图用Rspec测试我的控制器的新肌动蛋白,但收到以下错误:
Failure/Error: expect(assigns(:category)).to be_a_new(Category)
expected nil to be a new Category(id: integer, title: string, image_url: string, description: string, created_at: datetime, updated_at: datetime)
以下是测试的代码:
describe "GET #new" do
it "assigns a new category as @category" do
get :new, params: { }, session: valid_session
expect(assigns(:category)).to be_a_new(Category)
end
end
分类控制器新动作:
def new
@category = Category.new
end
使用get with new action打开一个可以创建新类别的表单。
如果有人能指出我正确的方向,那就太好了。
感谢。
答案 0 :(得分:0)
尝试这样的事情:
describe "GET #new" do
before(:each) do
session[:user_id] = valid_session.id #or something like
get :new
end
it "should be success" do
expect(assigns(:category)).to_not eq nil
expect(assigns(:category)).to be_a_new(Category)
end
end
这样你就可以在get:new。
之前设置会话