することができますあなたが書いた構文の両方がRSpecの正しいです:
it 'is between the time range' do
expect(Date.today).to be_between(Date.yesterday, Date.tomorrow)
end
it 'is between the time range' do
expect(Date.yesterday..Date.tomorrow).to cover Date.today
end
あなたがDate::yesterday
やDate::tomorrow
定義されていませんRailsのを使用していない場合。あなたはそれを手動で調整する必要があります:
it 'is between the time range' do
expect(Date.today).to be_between(Date.today - 1, Date.today + 1)
end
最初のバージョンはRSpecののpredicate matcherに建てによる動作します。このマッチャーは、オブジェクトに定義されているメソッドを理解し、それらに代わって、?
というバージョンも可能です。 Date
については、述語Date#between?
は、Comparable
(リンクを参照)が含まれています。
RSpecがcoverマッチャーを定義しているため、2番目のバージョンが機能します。
これは完璧に動作します。私はそれのためのドキュメントを見つけることができなかったことに驚いています。それを定義する必要はありません。 –
「be_within(1.day).of(Date.today)」を推奨します。 –