带有rspec的未初始化常量ActionView :: TestCase :: Behavior

时间:2019-01-09 08:51:13

标签: ruby-on-rails rspec

rails 5.2.1.1中运行rspec spec/services时,对于spec/services中的每个文件,我得到以下错误:

NameError:
#   uninitialized constant ActionView::TestCase::Behavior

鉴于此discussion,我在帮手中检查了一些奇怪的东西,但找不到任何可导致这种情况的东西。我该如何解决?

2 个答案:

答案 0 :(得分:1)

事实证明,此问题是由在枚举中使用“已加载”作为类别引起的。我是通过运行spec / services文件夹中的单个文件发现此错误的,而不是ActionView::TestCase::Behavior错误,而是出现以下错误:

You tried to define an enum named "status" on the model "User", but this will generate a class method "loaded", which is already defined by ActiveRecord::Relation.

枚举声明为

enum status: [:not_loaded, :loaded, :loading, :paused]

通过将:loaded更改为其他内容,通过了rspec / services中的所有测试,而实际使用的:loaded除外。

答案 1 :(得分:1)

当我在助手中将uninitialized constant ActionView::TestCase::Behavior块更改为else … if时,我随机弹出了一堆相同的错误(elsif);原来我所做的就是忘记删除匹配的end

因此,对于任何其他遇到此问题的人,很可能只是语法错误而恰好在帮助程序中。