DateTimeFormatterBuilder Failure dalam Unit Testing: Locale Dependency
Dalam senario ujian unit biasa, kaedah Java yang menggunakan DateTimeFormatterBuilder untuk menghuraikan rentetan tarikh gagal walaupun operasi yang sama berjaya semasa masa jalan. Percanggahan ini mencadangkan isu asas, terutamanya dengan pengendalian setempat.
Dalam kaedah ujian, rentetan ringkas "25-Mei-2018 11:10" gagal dihuraikan menggunakan DateTimeFormatterBuilder, manakala rentetan dan pemformat yang sama dilaksanakan berjaya semasa runtime. Tingkah laku ini menunjukkan bahawa isu terletak pada konfigurasi ujian unit dan bukannya kod itu sendiri.
Pertimbangan Tempatan
Untuk menyelesaikan isu ini, adalah penting untuk menyedari bahawa DateTimeFormatterBuilder bergantung pada tempat Java untuk mentafsir format tarikh dan masa. Secara lalai, DateTimeFormatterBuilder menggunakan tempat lalai JVM, yang mungkin berbeza merentas persekitaran ujian yang berbeza. Ketidakkonsistenan ini boleh menyebabkan kegagalan penghuraian yang tidak dijangka semasa ujian unit.
Membetulkan Ketergantungan Tempatan
Untuk memastikan gelagat penghuraian yang konsisten merentas persekitaran yang berbeza, adalah penting untuk menetapkan setempat secara eksplisit untuk DateTimeFormatter. Ini boleh dilakukan dengan menambahkan keFormatter(Locale.ENGLISH) ke DateTimeFormatterBuilder dan bukannya hanya keFormatter().
Dengan menetapkan tempat kepada bahasa Inggeris, DateTimeFormatterBuilder akan dapat menghuraikan dengan betul "25-Mei-2018 11 :10" sebagai objek LocalDateTime, menyelesaikan isu ujian unit.
Atas ialah kandungan terperinci Mengapa Ujian Unit DateTimeFormatterBuilder Saya Gagal Kerana Perbezaan Tempatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!