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. バックグラウンドで長時間過ごした後にnw.jsがフリーズする
- 5. 同じページで数時間後にウェブサイトがフリーズする
- 6. Kerasのテスト時間に入力サイズを変更するには?
- 7. テストに費やす時間を削減するには?
- 8. アプリケーションループ間のフリーズ
- 9. RSpecテスト時間オブジェクト
- 10. パフォーマンステスト - テスト:プロファイル対テスト:ベンチマーク、壁面時間対プロセス時間
- 11. 実行時間をテストするjava testTimer
- 12. PowerShellでオフ時間をテストする
- 13. 時間依存メソッドをテストする
- 14. 夏時間の2FAテスト
- 15. テスト時間ベースのスクリプト
- 16. 日付時間を要求するときにカスタムタイムクラスがフリーズする
- 17. テスト待ち時間を追加するには?
- 18. Twilioビデオクエリローディング時のフリーズ
- 19. iOSアプリは、 "setupAutoMigratingCoreDataStack"行の起動時に10秒間フリーズします。
- 20. Google AdMob GADBannerViewの最初のリクエストに時間がかかり、UIがフリーズする
- 21. 起動時にAndroidエミュレータがフリーズする
- 22. ビデオ再生時にOMXPlayerがフリーズする
- 23. 起動時にSpringブートアプリケーションがフリーズする
- 24. データロード時にR-Studioがフリーズする
- 25. マルチアップロードvaadinがアップロード時にフリーズする
- 26. Visual Studioが起動時にフリーズする
- 27. ネイティブアプリケーションが起動時にフリーズする
- 28. 夏時間夏時間の動作をテストするにはどうすればよいですか?
- 29. Apache Ignite cache freeze一定時間後にフリーズ
- 30. テスト時間依存サービスメソッド
これらの仮定はどのようにして作成しましたか? – erip
私はちょうどそれが私が尋ねられていると思っていることを意味しました。 –
さらに、 'now()'が何回であるのかを尋ねると、すぐに災害につながる可能性があります。 11:59:59(午後なし)から始まり12:00:01(午後)に終了する処理を想像してみてください。処理の途中で遷移するとすぐに出力が矛盾することがあります。開始時間を把握し、このスナップショットのすべての機能的決定を下すことが最良の場合があります。 –