Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何测试rspec rails中的if-else条件_Ruby On Rails_Rspec Rails_Ruby On Rails 6 - Fatal编程技术网

Ruby on rails 如何测试rspec rails中的if-else条件

Ruby on rails 如何测试rspec rails中的if-else条件,ruby-on-rails,rspec-rails,ruby-on-rails-6,Ruby On Rails,Rspec Rails,Ruby On Rails 6,我是RSpec的新手,我想测试控制器的if-else条件,我在互联网上搜索过,但找不到正确的结果 def edit if @question.user_id == current_user.id render :edit else redirect_to root_path end end 我使用的是rails 6 请通过一个示例指导我如何为此条件编写RSpec。要在RSpec中测试这一点,您需要操作传递给控制器的参数,以生成条件上的变量

我是RSpec的新手,我想测试控制器的if-else条件,我在互联网上搜索过,但找不到正确的结果

  def edit
    if @question.user_id == current_user.id
      render :edit
    else
      redirect_to root_path
    end
  end
我使用的是rails 6
请通过一个示例指导我如何为此条件编写RSpec。

要在RSpec中测试这一点,您需要操作传递给控制器的参数,以生成条件上的变量
@question.user\u id==current\u user.id

通常在rspec中,你会有这样的东西给所有的控制器,通常包含一个before动作

before do
 get :edit, params
end

您传入的
参数应根据要测试的条件而有所不同。

制作两个场景,并用两个不同的用户模拟问题。它将适用于您或其他人昨天提出的问题: