ホームページ > Java > &#&チュートリアル > DateTimeFormatterBuilder 単体テストは失敗するのに、ランタイム実行は成功するのはなぜですか?

DateTimeFormatterBuilder 単体テストは失敗するのに、ランタイム実行は成功するのはなぜですか?

Mary-Kate Olsen
リリース: 2024-12-08 13:08:11
オリジナル
414 人が閲覧しました

Why Does My DateTimeFormatterBuilder Unit Test Fail, But Runtime Execution Succeed?

DateTimeFormatterBuilder テストの失敗

Java アプリケーションで、DateTimeFormatterBuilder のテスト ケースは、単体テストとして実行すると失敗しますが、実行すると正しく動作します実行時。この問題は、次のテスト メソッドから発生します。

public void testFormat() throws Exception {
    final String startDateFormatA = "25-May-2018 11:10";
    final String endDateFormatA = "25-May-2018 11:10";
    assertEquals("06:00", callDbController.getTimeDifference(startDateFormatA, endDateFormatA)[1]);
}
ログイン後にコピー

このテストは、DateTimeFormatterBuilder を使用して日付文字列の解析を試み、特定の結果を期待します。ただし、テスト時に実行するとテストは失敗します。

実行時の動作とテスト時の動作の不一致は、DateTimeFormatterBuilder の toFormatter() メソッドでロケールが指定されていないことが原因です。これは、フォーマッタが JVM のデフォルト ロケールを使用することを意味します。このロケールは、実行時環境とテスト環境で異なる場合があります。この問題を解決するには、toFormatter() メソッドで、Locale.ENGLISH などのロケールを明示的に指定する必要があります。

DateTimeFormatter DATE_TIME_FORMAT = new DateTimeFormatterBuilder().parseCaseInsensitive().appendPattern("dd-MMM-yyyy HH:mm").toFormatter(Locale.ENGLISH);
ログイン後にコピー

ロケールを設定することで、DateTimeFormatterBuilder はフォーマッタが異なる日付と時刻を一貫して解析できるようにします。環境

以上がDateTimeFormatterBuilder 単体テストは失敗するのに、ランタイム実行は成功するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート