ruby-on-rails – 如何避免Rspec共享示例’先前定义的’警告?

我正在尝试学习如何使用Rspec的共享示例功能,并在运行测试时收到警告:
WARNING: Shared example group 'required attributes' has been prevIoUsly defined at:
  /Users/me/app/spec/support/shared_examples/required_attributes_spec.rb:1
...and you are Now defining it at:
  /Users/me/app/spec/support/shared_examples/required_attributes_spec.rb:1
The new deFinition will overwrite the original one.
....

我已经阅读了我认为关于这个问题的文档here,但是我无法理解它/看到我案例的内容.

这是我的共享示例:

# spec/support/shared_examples/required_attributes_spec.rb

shared_examples_for 'required attributes' do |arr|
  arr.each do |meth|
    it "is invalid without #{meth}" do
      subject.send("#{meth}=",nil)
      subject.valid?
      expect(subject.errors[meth]).to eq(["can't be blank"])
    end
  end
end

我试图在用户模型和公司模型中使用它.这是它的样子:

# spec/models/user_spec.rb

require 'rails_helper'

describe User do
  subject { build(:user) }
  include_examples 'required attributes',[:name]
end

# spec/models/company_spec.rb

require 'rails_helper'

describe Company do
  subject { build(:company) }
  include_examples 'required attributes',[:logo]
end

根据我上面链接的Rspec文档中的建议,我尝试将include_examples更改为it_behaves_like,但这没有帮助.我还完全注释掉了company_spec.rb所以只有一个使用共享示例的规范,我仍然收到警告.

任何人都可以帮助我看看这里发生了什么,以及在这种情况下我应该做些什么来避免警告?

解决方法

我在Rspec Github的 issue中找到了答案:

Just in case someone googles and lands here. If putting your file with
shared examples into support folder has not fixed the following
error…Make sure your filename does not end with _spec.rb.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...