SORU
4 Ocak 2010, PAZARTESİ


Geçersiz Java Sistemi.currentTimeMillis test süresi için hassas kod

Sistem üzerinden sunulan şimdiki zaman, geçersiz kılmak için bir yol, ya da JVM argümanları ile kod ya.currentTimeMillis, el ile ana makinede sistem saatini değiştirmek dışında?

Küçük bir arka plan:

Geçerli tarih etrafında kendi mantığı (ay, 1 yıl, yani 1., vb.) çok hareket eden ve muhasebe işleri bir dizi çalışan bir sistemimiz var

Ne yazık ki, eski kod bir sürü yeni Tarih gibi işlevleri çağırır() veya Takvim.sonunda Sistemi Ara. () getınstance, currentTimeMillis.

Sınama amacıyla, şu anda manuel sistem saati kodu test ediliyor ne düşündüğünü işlemek için güncelleme ile sıkışıp kaldık.

Benim sorum ise şu:

Bir şekilde Sistem tarafından iade edilir kılmak için vardır.currentTimeMillis? Örneğin, JVM otomatik olarak veya bazı yöntem dönmeden önce mahsup toplama ve çıkarma için söylemek?

Şimdiden teşekkürler!

CEVAP
4 Ocak 2010, PAZARTESİ


Bengüçlüsistem saati ile uğraşmak yerine, durumu kabullenip eski kodu değiştirilebilir bir saat kullanmak için yeniden öneririz.İdealBu bağımlılık enjeksiyon ile yapılmalıdır, ama eğer değiştirilebilir bir tek kullandıysanız bile test edilebilirlik elde eder.

Bu arama ile otomatik olarak ve tek sürümü için yerini alabilir hemen:

  • Clock.getInstance().getCalendarInstance() Calendar.getInstance() değiştirin.
  • Clock.getInstance().newDate() new Date() değiştirin
  • Clock.getInstance().currentTimeMillis() System.currentTimeMillis() değiştirin

(gerektiği gibi vs)

İlk adımı attın sonra bir anda Dİ ile tek bir bit değiştirebilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ammine Getahun

    Ammine Getah

    21 HAZİRAN 2011
  • IGN

    IGN

    19 EYLÜL 2006
  • Incredible Tutorials

    Incredible T

    27 EKİM 2006