expect
rspec-2.11の新しい構文では、どのように暗黙的な使用が可能subject
ですか? 以下のように、明示的に を参照するよりも良い方法はありsubject
ますか?
describe User do
it 'is valid' do
expect(subject).to be_valid # <<< can `subject` be implicit?
end
end
構文を無効にするように RSpec を構成する場合、すべてのオブジェクトに追加するshould
必要がないため、古いワンライナー構文を引き続き使用できます。should
describe User do
it { should be_valid }
end
別のワンライナー構文について簡単に説明しましたが、それは不要であり、混乱を招く可能性があると感じたため、使用しないことにしました。ただし、読み方を好む場合は、これを自分で簡単に追加できます。
RSpec.configure do |c|
c.alias_example_to :expect_it
end
RSpec::Core::MemoizedHelpers.module_eval do
alias to should
alias to_not should_not
end
これを配置すると、これを次のように書くことができます。
describe User do
expect_it { to be_valid }
end
暗黙的ではありませんが、新しい名前付きサブジェクト構文を使用できます。
describe User do
subject(:author) { User.new }
it 'is valid' do
expect(author).to be_valid
end
end