ホームページ >Java >&#&チュートリアル >ロケールの違いにより DateTimeFormatterBuilder 単体テストが失敗するのはなぜですか?
単体テストでの DateTimeFormatterBuilder の失敗: ロケールの依存関係
典型的な単体テストのシナリオでは、日付文字列の解析に DateTimeFormatterBuilder を使用する Java メソッドが失敗します。実行時に同じ操作が成功したにもかかわらず。この不一致は、特にロケール処理に関する根本的な問題を示唆しています。
テスト方法では、同じ文字列とフォーマッタが実行される一方で、DateTimeFormatterBuilder を使用した単純な文字列「25-May-2018 11:10」の解析に失敗します。実行時に正常に実行されました。この動作は、問題がコード自体ではなく単体テスト構成にあることを示しています。
ロケールに関する考慮事項
この問題を解決するには、DateTimeFormatterBuilder が依存していることを認識することが重要です。 Java ロケールで日付と時刻の形式を解釈します。デフォルトでは、DateTimeFormatterBuilder は JVM のデフォルト ロケールを使用します。これは、テスト環境によって異なる場合があります。この不一致により、単体テスト中に予期しない解析エラーが発生する可能性があります。
ロケール依存関係の修正
異なる環境間で一貫した解析動作を保証するには、ロケールを明示的に設定することが重要です。 DateTimeFormatter の場合。これは、単に toFormatter() の代わりに toFormatter(Locale.ENGLISH) を DateTimeFormatterBuilder に追加することで実行できます。
ロケールを英語に設定すると、DateTimeFormatterBuilder は「25-May-2018 11」を正しく解析できるようになります。 :10" 文字列を LocalDateTime オブジェクトとして使用し、単体テストの問題を解決します。
以上がロケールの違いにより DateTimeFormatterBuilder 単体テストが失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。