RSpec では似たような context
を共有するために shared_context
というものがある。 include_context
を呼び出すことで使えるのだけど、ほかにも方法があることを知った。それがメタデータとして指定する方法だ。
RSpec 3.5 から現在の記法になっているらしい。
http://rspec.info/ja/blog/2016/07/rspec-3-5-has-been-released/
分かりやすくないけど、公式にも例がある。
RSpec.configure
には触れられていないけど、メタデータとしての指定がほしくなる経緯については↓が分かりやすい。
http://qiita.com/aereal/items/4c42f8e470ba6e061d40
↓のような雰囲気だ。
# spec/support/contexts/context1.rb shared_context 'context1', context: 1 do let!(:params) { 'baz' } end # spec/rails_helper.rb # ... Dir[Rails.root.join('spec', 'support', '**', '*.rb')].each { |f| require f } # ... RSpec.configure do |config| # ... config.include_context 'context1', context: 1 end # spec/models/foo_spec.rb require 'rails_helper.rb' RSpec.describe Foo, type: :model do describe '#bar' do context 'context1', context: 1 do # メタデータで include_context 'context1' を代替 # params は 'baz' # ... end end end
2017-07-04 以来、花火 (HANABI) を何度か遊んでいる。初回は参加しなかったが、その後は妻も参加している。記憶力のなさを痛感する。ミスを重ねている。
協力するゲームだから良いと思いがちだけど、ミスをした味方を責める形になることもあり、直接的に競争するときとは違うやりづらさがあるかもしれない。