rails:3334
From: Fujioka <fuj@r...>
Date: Fri, 11 Dec 2009 14:52:06 +0900
Subject: [rails:3334] Re: テスト時や development 環境の時のみシステム時刻を強制したい
藤岡です。 config/environments/test.rb もしくは config/environments/development.rb で定義するといいのではないでしょうか。 conrig/environment.rbだと productionの時もここを通るので、やめた方がいいと思います。 naopontan wrote:: > naopontan です。 > > 再定義はどこにするのが妥当ですか? > > 例えば config/environment.rb に以下の記述をしてみました。 > require 'date' > class Date > def self.today > RAILS_ENV == 'production' ? Date.today : Date.new(2009,10,1) > end > end > > #ただ、これだと production 環境で実行したら「SystemStackError: stack level too deep」 > #が出てしまいました。 > #(エラーが出ないように、本当の Date.today をコールするにはどうしたら良いですか?) > > このような実装を Time でもオーバーライドで対応していけば良いですか? > > ちなみに rails 2.1.2 です。 > > > 2009年12月11日12:27 Fujioka <fuj@r...>: >> xibbarこと藤岡です。 >> >> Date.todayやTime.nowの再定義をするのがおすすめです。 >> >> naopontan wrote:: >>> テスト実行時や development 環境の時のみ、システム時刻を特定の日付に出来ないでしょうか? >>> 具体的には Date.today や Time.now 等をコールすると 2009-11-10 を返すという事です。 >>> >>> テストファイル(yml)に様々な属性の日付や時刻を埋め込んでいるので、例えば >>> 「今日通ったテストが明日は通らなくなる」といった事態になってしまいます。 >>> >>> それとも、フィクスチャには >>> birthday = <%= 10.years.ago.to_s(:db) %> >>> 等の様に全ての日時関連情報は相対的に記述するしかないのでしょうか? >>> -- ML: rails@r... 使い方: http://QuickML.com/
3330 2009-12-11 04:09 [naopontan@g... ] テスト時や development 環境の時のみシステム時刻を強制したい 3331 2009-12-11 04:27 ┣[fuj@r... ] 3332 2009-12-11 06:43 ┃┗[naopontan@g... ] 3333 2009-12-11 06:48 ┃ ┣[okkez000@g... ] 3335 2009-12-11 06:55 ┃ ┃┣[okkez000@g... ] 3339 2009-12-11 07:22 ┃ ┃┗[naopontan@g... ] -> 3334 2009-12-11 06:52 ┃ ┣[fuj@r... ] 3338 2009-12-11 07:18 ┃ ┃┗[naopontan@g... ] 3341 2009-12-11 10:08 ┃ ┃ ┗[fuj@r... ] 3342 2009-12-11 10:53 ┃ ┃ ┗[naopontan@g... ] 3336 2009-12-11 07:09 ┃ ┣[shigi@s... ] 3337 2009-12-11 07:13 ┃ ┗[kawaji@g... ] 3340 2009-12-11 07:20 ┃ ┗[naopontan@g... ] 3343 2009-12-11 23:39 ┗[zn@m... ]