我正在尝试学习如何使用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.
原文地址:https://www.jb51.cc/ruby/271384.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。