'iyi bir şekilde DateTime üzerine yazmak ne.Test sırasında şimdi?
Bazıları bende de var (C#) doğru zamanda işleri hesaplamak için, bugünün tarihini kullanan kod. Eğer test günün tarihi kullanırsam doğru gelmiyor deney, hesaplama tekrarlamak zorunda. Sonucu bilinen bir değer olup olmadığını test edebilirsiniz böylece test içinde bilinen bir değer için tarih ayarlamak için en iyi yolu nedir?
CEVAP
Benim tercihim aslında zaman kullanan sınıflar arayüz gibi güveniyor
interface IClock
{
DateTime Now { get; }
}
Somut bir uygulama ile
class SystemClock: IClock
{
DateTime Now { get { return DateTime.Now; } }
}
Daha sonra Eğer isterseniz, test için istediğiniz saat başka türlü vermek gibi
class StaticClock: IClock
{
DateTime Now { get { return new DateTime(2008, 09, 3, 9, 6, 13); } }
}
Belki biraz havai temin saati sınıfı kullanır, ama olabilir idare tarafından herhangi bir sayı bağımlılık enjeksiyon çözümleri (kullanarak bir ters Çevirme Kumanda kabı, düz eski kurucu/kurucu enjeksiyon, hatta bir Static Gateway Pattern).
Diğer mekanizmalar sunan bir nesne veya yöntem sağlar istediğiniz zamanlarda da işe, ama bence en önemli şey olduğu için önlemek sıfırlama sistem saati, o sadece tanıştırmayacak ağrı diğer seviyeleri.
Ayrıca, kullanarak DateTime.Now
ve de dahil olmak üzere bu hesaplamalar gelmez değil hissediyorum sağ boşaltır sizi yeteneğini test etmek için belirli zamanlarda, örneğin, eğer keşfetmek bir hata sadece olur yakınlarındaki bir gece yarısı sınır, ya da Salı günü. Şimdiki zaman kullanarak, bu senaryoları test etmek için izin vermez. Ya da en azından istediğin zaman değil.
Nasıl konsola yazmak.MSTest bir test y...
DateTime.Şimdi en iyi şekilde ölçmek i...
Ne uygun şekilde test eğer değişken bo...
{% Block %} üzerine yazmak yerine ekle...
DateTime nasıl dönüştürebilirim.Ruby U...