Öncelikle JUnit iddialarını Hamcrest eşleştiricilerle kullanan bir test paketimiz var. Ekibimizden biri AssertJ ile deneyler yapmaya başladı ve söz dizimi, esnekliği ve bildirimselliği ile insanları etkiledi. JUnit'in AssertJ'de eşdeğerini bulamadığım bir özelliği var: özel bir assert hatası mesajı eklemek.
Genellikle insan tarafından okunabilir olmayan ve rastgele görünen kimlikleri veya UUID'leri olan nesneleri karşılaştırıyoruz ve içerdikleri verilerden ne olmaları gerektiğini söylemek imkansız. Bu, kod tabanımız için kaçınılmaz bir durumdur, ne yazık ki, yerine getirdiği amacın bir parçası olarak, diğer hizmetler arasında verilerin ne olduğunu anlamadan haritalandırılmasıdır.
JUnit'te assertThat
yöntem String reason
, Matcher<T>
paramdan önce bir parametreye sahip bir sürüm sağlar . Bu, karşılaştırmanın bir insan için ne ifade etmesi gerektiği gibi, soruna biraz ışık tutacak kısa bir hata ayıklama dizisi eklemeyi önemsiz hale getirir.
Öte yandan AssertJ, Assert arabiriminin bir biçimini veya birçok uygulama sınıfından birini döndüren jilyon farklı jenerikleştirilmişstatic assertThat
yöntem sağlar . Bu arabirim, hatalara dahil edilecek özel bir mesaj ayarlamanın standart bir yolunu sağlamaz.
Mesaj eklemek istediğimiz her assert türü için özel bir assert sınıfı oluşturmak zorunda kalmadan bu işlevi AssertJ API'sinden veya uzantılarından birinden almanın bir yolu var mı ?
withFailMessage
Maddeyi çağırma sırası ; AssertJ'yi seviyorum ama bu berbat.