Bağlam buldum xunit github içindeXUnit açıklayıcı Assert mesajı nasıl uygulanır?
bu:
Biz şunlardır: Add Assert.Equal(expected, actual, message) overload #350cevaptan
Teklif (yani geliştirici aşağıya bakınız olmayan varolan aşırı sormak) kendini belgeleyen koda inanan; bu sizin iddialarınızı içerir.
Tamam, anladım (şimdiye xunit ekibi bunu reddeder). Ayrıca kendini belgeleyen kodlara da inanıyorum. Hala bu kullanım durumunu öğrenmek olamaz:
Numune
// Arrange
// Create some external soap service client and its wrapper classes
// Act
// client.SomeMethod();
// Assert
// Sorry, soap service's interface, behaviour and design is *given*
// So I have to check if there is no Error, and
// conveniently if there is, then I would like to see it in the assertion message
Assert.Equal(0, client.ErrorMessage.Length); // Means no error
// I would like to have the same result what would be the following *N*U*n*i*t* assert:
// Assert.AreEqual(0, client.ErrorMessage.Length, client.ErrorMessage); // Means no error
Soru hala böyle sahiptir xUnit bu durumda açıklayıcı assert mesaj uygulayabilir nasıl
aşırı yük?
Sorun nedir açık değil. Neden sadece “Assert.AreEqual” (0, client.ErrorMessage.Length, client.ErrorMessage); – Kritner
XUnit'te böyle bir aşırı yükleme yok. Bu bir NUnit çağrısı. Lütfen çok başlangıç cümlesine bakın: bir geliştirici böyle bir aşırı yüklenmeyi ister ve XUnit ekibi, "Bizler kendi kendini belgeleyen bir kod olan inancımız vardır; bu, sizin iddialarınızı içerir" ifadesi nedeniyle reddeder. –
@ g.pickardou, Neden önerileri kullanmıyorsunuz? linkte sağlanmıştır. Akıcı iddialar gibi ya da mesaj aşırı yüklemeleriyle bırakılmış olan “Assert.True veya Assert.False” i saran kendi iddiayı yaratın. Daha ileride bahsedildi. "Assert.True ve .False'ye mesajlar verebilirsiniz.Mesajlar olmadan yaşayamazsanız (ve farklı bir onaylama kullanmayı reddetmiyorsanız), her zaman geri dönebilirsiniz: Assert.True (sayı == 2, "Bu benim mesajım"); ' – Nkosi