dee*_*dee 4 ruby testing rspec
我想shared_examples在不同的规范文件中重用这个块。我想将其提取到一个单独的文件中,并传入对象,因此它并不总是用户的。我尝试的两种方法都失败了,这可能吗?
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
Run Code Online (Sandbox Code Playgroud)
只是require另一个文件。shared_examples在顶层工作,因此一旦定义,它们就始终可用;所以要小心命名冲突。
许多 RSpec 用户会将共享示例放在spec/support/shared_examples/FILENAME.rb. 然后spec/spec_helper.rb有:
Dir["./spec/support/**/*.rb"].sort.each {|f| require f}
Run Code Online (Sandbox Code Playgroud)
或者在 Rails 项目上
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
Run Code Online (Sandbox Code Playgroud)
这在共享示例文档的“约定”部分中列出。
| 归档时间: |
|
| 查看次数: |
3129 次 |
| 最近记录: |