Rspec:控制器动作不重新路由

问题描述 投票:0回答:1

我已经设置了一个带有“导演”和“索引”动作的MoviesController。这是“导演”行动。

director action

我正在对“导演”行动进行rspec测试。

director test

我收到这个错误

error image

错误是说@similarMovies是nil,但在该行之前,我测试@similarMovies是否为nil并重定向到索引操作(movies_path)。我手动测试了这段代码,如果@similarMovies为零,我会被重定向。我已经使用了byebug,它确实包含在“if @similarMovies == nil”块中。 redirect_to方法甚至被调用,但由于某种原因,它实际上从未实际被重定向到索引操作。我知道这一点,因为我也将byebug放在索引动作的开头。我对这种行为感到很困惑。任何帮助将不胜感激。

ruby-on-rails rspec-rails
1个回答
0
投票

改变你的if条件来检查empty?而不是== nil。如果没有找到记录,您仍会收到ActiveRecord::Relation

if @similarMovies.empty?
  flash[:notice] = "'#{@movie.title}' has no director info"
  redirect_to movies_path and return
end
© www.soinside.com 2019 - 2024. All rights reserved.