2016-11-21 4 views

答えて

0

これはスイートのテストでよく見られる問題です。幸いなことに、共通の解決策があります。

比較されたタイムスタンプからマイクロ秒をトリミングすることができます(RDBMSのベンダーとホストアプリケーションの言語ができるだけ微妙な時間で多少異なる場合があるため)。

timecop gemを試すと、これらの詳細を処理するのに役立ちます。基本的に現在の時刻をフリーズしたり、関連するデータや比較値を作成したり、それらの値を期待通りに使うことができます。

最後に、正しいタイムゾーンと日付または時刻のデータ型を比較していることを確認してください。 RubyのTimeクラスとDateクラスのドキュメントや、Railsを使用している場合は、TimeWithZoneクラスのドキュメントを参照してください。時間帯の比較の間で問題を経験するのは非常に一般的です。したがって、これらの比較に常に一貫性のあるデータ型を使用する必要があります(Date.todayTime.nowまたは1.day.agoと比較しないでください)。このテーマには多くのブログ記事がありますので、RubyのTime値の比較についてお読みください。

これは、Rubyコンソールを開いて、時間値を生成するためのさまざまな方法論を試してみると、GMTなどを使用する現在のシステムタイムゾーンにどの表現がデフォルトになるのかを感じることができます。テストスイート全体で時間値を生成するために、一貫したデータ型とパターン(つまり、同じタイムゾーン)を使用してください。