我想在不同的spec文件中重用这个shared_examples
块。我想把它解压缩到一个单独的文件中,并传入对象,这样它就不总是user了。我尝试的两件事都失败了,有可能吗?
describe User do
before { @user = build_stubbed(:user) }
subject { @user }
shared_examples 'a required value' do |key| # trivial example, I know
it "can't be nil" do
@user.send("#{key}=", nil)
@user.should_not be_valid
end
end
describe 'name'
it_behaves_like 'a required value', :name
end
end
1条答案
按热度按时间pu3pd22g1#
只有
require
和其他文件.shared_examples
在顶层工作,因此一旦定义了它们,它们总是可用的;因此要小心命名冲突。很多RSpec用户会把共享的例子放在
spec/support/shared_examples/FILENAME.rb
中,然后在spec/spec_helper.rb
中有:或在Rails项目上
这列在共享示例文档的'CONVENTIONS'部分中。