在rails 5.2.1.1
中运行rspec spec/services
时,对于spec/services
中的每个文件,我得到以下错误:
NameError:
# uninitialized constant ActionView::TestCase::Behavior
鉴于此discussion,我在帮手中检查了一些奇怪的东西,但找不到任何可导致这种情况的东西。我该如何解决?
答案 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
。
因此,对于任何其他遇到此问题的人,很可能只是语法错误而恰好在帮助程序中。