six*_*bit 9 ruby testing warnings rspec ruby-on-rails
我正在尝试学习如何使用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.
....
Run Code Online (Sandbox Code Playgroud)
我已经阅读了我认为这里有关于这个问题的文档,但是我无法理解它/看到我案例的内容.
这是我的共享示例:
# 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
Run Code Online (Sandbox Code Playgroud)
我试图在User模型和Company模型中使用它.这是它的样子:
# 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
Run Code Online (Sandbox Code Playgroud)
根据我上面链接的Rspec文档中的建议,我尝试过更改include_examples为it_behaves_like,但这没有帮助.我也company_spec.rb完全注释掉,所以只有一个使用共享示例的规范,我仍然收到警告.
任何人都可以帮我看看这里发生了什么,以及在这种情况下我应该做些什么来避免警告?
| 归档时间: |
|
| 查看次数: |
1030 次 |
| 最近记录: |