【发布时间】:2021-07-29 10:02:18
【问题描述】:
我在为 Controller 中的函数编写请求规范时遇到了一些问题。该功能应该让用户与另一个用户共享购物清单。我正在使用 FactoryBot。
class ShoppingListsController < ApplicationController
before_action :authenticate_user!
def share
shopping_list = current_user.shopping_lists.find(params[:id])
user = User.find_by(email: params[:email])
user_list = UserShoppingList.new(user: user, shopping_list: shopping_list)
if user_list.save
flash[:notice] = "Shopping list has been shared"
else
flash[:alert] = "Shopping list has not been shared"
end
redirect_to shopping_lists_path
end
end
共享规范应该是什么样子?我被困在这个阶段,不知道如何在这里通过 shopping_list_id 以及“期望”应该是什么样子
require "rails_helper"
RSpec.describe ShoppingListsController, type: :request do
login_user
let (:user) { controller.current_user }
let (:shopping_list) { create :shopping_list, user: user }
describe 'share shopping list' do
it 'let current user share shopping list' do
post share_shopping_list_path, params: {email: 'user2@gmail.com'}
end
任何帮助将不胜感激:)
【问题讨论】:
-
发布 share_shopping_list_path(shopping_list),参数:{email: 'user2@gmail.com'}。预计将为电子邮件指定的用户创建一个新列表。
标签: ruby-on-rails rspec