0
A
答えて
2
私はあなたが同じよう機能を持っている意味と仮定しています:
pub fn is_now_afternoon() -> bool {
let t = time::now();
t.tm_hour >= 12
}
そして、あなたはそれが特定の時間に動作するかどうかをテストしたいです。
私は少し異なり、それを構造化し、時間を渡します。
// More generic helper function, which does all the real work
fn is_t_afternoon(t: &Tm) -> bool {
t.tm_hour >= 12
}
// Simple wrapper to use now.
pub fn is_now_afternoon() -> bool {
is_t_afternoon(&time::now())
}
#[test]
fn test_afternoon() {
assert!(is_t_afternoon(Tm{ tm_hour: 13, /* other fields */ }));
assert!(!is_t_afternoon(Tm{ tm_hour: 10, /* other fields */ }));
}
アイデアは、あなたが依存していない別の、より簡単にテスト可能な関数にすべての作業を行うコードを分離することであること「現実の世界」環境私はしばしば、より一般的な関数が後で他の文脈で役に立つことを見出します。
もう一つの戦略(これはもっと難しく、エラーが起こりやすいと思います)は、テスト機能で現在の時間に答えが与えられているかどうかを独立して計算し、実際のものが一致するかどうかをチェックすることです。しかし、これは断続的なテストにつながる可能性があります。あるいは、実際の機能と同じバグをテストに持ち込んでいるようです。
関連する問題
- 1. データベース作成時のDjangoテストのフリーズ
- 2. unittests(djangoとsqlite)のデータベース時間をフリーズ
- 3. AVAssetReaderの時間範囲を設定するとフリーズする
- 4. アプリケーションループ間のフリーズ
- 5. テストに費やす時間を削減するには?
- 6. RSpecテスト時間オブジェクト
- 7. パフォーマンステスト - テスト:プロファイル対テスト:ベンチマーク、壁面時間対プロセス時間
- 8. 実行時間をテストするjava testTimer
- 9. 時間依存メソッドをテストする
- 10. PowerShellでオフ時間をテストする
- 11. テスト時間ベースのスクリプト
- 12. 夏時間の2FAテスト
- 13. 日付時間を要求するときにカスタムタイムクラスがフリーズする
- 14. iOSアプリは、 "setupAutoMigratingCoreDataStack"行の起動時に10秒間フリーズします。
- 15. Google AdMob GADBannerViewの最初のリクエストに時間がかかり、UIがフリーズする
- 16. Visual Studioが起動時にフリーズする
- 17. ビデオ再生時にOMXPlayerがフリーズする
- 18. 起動時にAndroidエミュレータがフリーズする
- 19. ネイティブアプリケーションが起動時にフリーズする
- 20. Apache Ignite cache freeze一定時間後にフリーズ
- 21. 夏時間夏時間の動作をテストするにはどうすればよいですか?
- 22. テスト時間依存サービスメソッド
- 23. ドッカー:ログイン時にSSHフリーズ
- 24. Rails 5のテストには時間がかかります
- 25. C++で一定時間出力画面をフリーズ
- 26. pytestはテストを収集するのに長い時間がかかります
- 27. 短期間のUIフリーズapplicationWillEnterForeground
- 28. Oracleの24時間時間を12時間に変換する
- 29. ジョーダ時間、時間と時間を同時に解析する
- 30. Jacocoはユニットのテスト時間を記録していますか?
これらの仮定はどのようにして作成しましたか? – erip
私はちょうどそれが私が尋ねられていると思っていることを意味しました。 –
さらに、 'now()'が何回であるのかを尋ねると、すぐに災害につながる可能性があります。 11:59:59(午後なし)から始まり12:00:01(午後)に終了する処理を想像してみてください。処理の途中で遷移するとすぐに出力が矛盾することがあります。開始時間を把握し、このスナップショットのすべての機能的決定を下すことが最良の場合があります。 –