Tôi đang cố gắng sử dụng kết hợp Timecop và truy vấn dữ liệu where_sql arel, nhưng tôi dường như không thể có được Timecop để thực sự đóng băng thời gian. Tôi đã thử Timecop.freeze và Timecop.freeze (Time.now), cả hai đều hơi tắt khi sử dụng Time.now trong spec của tôi.Làm thế nào để tôi đóng băng đúng thời gian với Timecop trong thông số kỹ thuật của tôi?
Tôi đang thiếu gì? Ruby 1.9.2, Rails 3.1.0.rc5
-
lỗi
Failure/Error: Game.unreleased.arel.where_sql.should eq("WHERE (release_date > '#{Time.now}')")
expected "WHERE (release_date > '0000-01-01 00:00:00 -0500')"
got "WHERE (release_date > '0000-01-01 05:00:00.000000')"
mô hình
scope :unreleased, lambda { |limit = 4| where('release_date > ?', Time.now).
order('release_date asc').
limit(limit) }
đặc tả
it "should retrieve games with a release date later than today" do
Timecop.freeze
Game.unreleased.arel.where_sql.should eq("WHERE (release_date > '#{Time.now}')")
end
Nhìn gần hơn này , Tôi không nghĩ rằng đó là timecop nhưng là một vấn đề trong định dạng dấu thời gian. Bây giờ để chỉ ra rằng mảnh ra. –