Varlıklar ve iyi bir alwaysAssert()
işlev. IMHO, bunlar ünite testlerinden daha önemlidir, çünkü ünite testleri sadece test etmeyi düşündüğünüz özel durumlarda hatalar bulabilir. Aynı programcı kodu ve testleri yazarsa, muhtemelen her ikisinde de aynı davaları kaçıracaktır. Dahası, bazen birim testi pratik değildir, çünkü bileşenlerin ve / veya üzerinde çalıştığı verilerin çalıştığı ortam, üzerinde durulan bir test durumunun ortaya çıkması için çok karmaşıktır.
Varlıkların güzelliği varsayımları belgeleme ve onları inanılmamış girdiler üzerinde test etme yeteneklerinde yatmaktadır . Bu varsayımlardan herhangi biri yanlışsa, kodunuz "çalışmak" yerine yüksek sesle başarısız olur, ancak çok yanlış sonuçlar verir. Aynı zamanda, sorunun kökenine iddiada bulunmadığından daha yakındır. Uygulamada, bir kod parçası hakkında yeterli varsayımları açıkça belirtirseniz ve bu varsayımların tümü doğruysa, kod genellikle doğrudur.
Atılganlara dair yaygın bir yakınma, onların kapatılabileceği yönündedir. IMHO her dilde veya standart kütüphanede alwaysAssert()
, aynı şeyleri yapan assert
ancak kapatılamayan bir işlev veya kaba bir eşdeğer olmalıdır. Bu, varsayımların kapatılmasının faydalarının önemsiz olduğu, performans dışı kritik kod alanlarındaki varsayımları kontrol etmek için kullanılabilir.