gpt4 book ai didi

ruby-on-rails - 需要 user_id 时对 Rspec 功能的怀疑

转载 作者:行者123 更新时间:2023-11-28 21:31:55 27 4
gpt4 key购买 nike

假设我想测试用户是否能够填写表单来创建新项目。我需要访问的路由是:new_user_project_path(:user_id)

所以,我的特征 rspec 现在看起来像这样:

feature "User creates a project" do
scenario "Logged in User creates a project" do
login_with_oauth #this sets current_user
visit new_user_project_path
fill_in 'Title', :with => 'Colchasdadasdasoneta'
fill_in 'Description', :with => 'lalalssalsalas'
click_in 'Create Project'
end
end

如您所知,我无法使用此访问 new_user_project_path,因为它需要传递 :user_id。我的问题是,如何访问 current_user?或者测试这类东西的正确方法是什么?

最佳答案

你的路线有问题。与其直接解决问题(这很容易),不如仔细检查您的代码逻辑。

您不应该将用户 ID 定义为路径参数来创建新项目。相反,项目实例应由 current_user 启动。

要将新项目与用户相关联,只需在 Controller 中执行即可

@project = current_user.projects.new

总结:

  1. 修改类似上面的 Controller 代码
  2. 将您的路线恢复到常规资源。
  3. 然后,按原样使用您的测试,但应附加更多期望值。

关于ruby-on-rails - 需要 user_id 时对 Rspec 功能的怀疑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17505053/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com