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

  • Codecourse

    Codecourse

    3 ŞUBAT 2009
  • CorridorDigital

    CorridorDigi

    17 Mayıs 2010
  • Fraser Raft

    Fraser Raft

    9 Mart 2010