1

travel_toActiveSupport::Testing::TimeHelpersのメソッドを使用しようとしています。visit_page別の日のように使用できるようにしたいです。Date.todayへの呼び出しによって定義されたブロック内から呼び出すことができtravel_to、テストしようとしている日付が表示されます。ただし、Date.todayカピバラでアクセスしているページのコントローラー内から呼び出されると、常に今日の日付が返されます。

テストは次のとおりです。

    it 'shows the date' do
      new_time = Time.local(2017, 11, 16, 10, 0, 0)
      travel_to(new_time) do
          puts Date.today
          visit root_path
          expect(page).to have_content '2017-11-16'
      end
    end

そしてコントローラー:

class RootPageController < ApplicationController

  def index
     @this_date = Date.today 
  end
end

そしてテストの失敗:

2017-11-16
    ...
     Failure/Error: expect(page).to have_content '2017-11-16'
       expected to find text "2017-11-16" in "2017-11-27"

どういうわけかカピバラがDate.todayコントローラーでの呼び出しをtravel_toテストのブロックの前に発生させているのではないかと疑っています。そうならないようにする方法はありますか?または、何か他のことが起こっている可能性がありますか?

4

0 に答える 0