KontekstJak zaimplementować komunikat XUnit descriptive Assert?
w xUnit github Znalazłem to: Add Assert.Equal(expected, actual, message) overload #350(tak deweloper poprosić o nie istniejącej przeciążenia patrz poniżej)
cytat z odpowiedzi:
Jesteśmy wierzący w własny dokumentujący kod; to obejmuje twoje twierdzenia.
(więc zespół xUnit go odrzuci)
OK, rozumiem. Wierzę również w kodowanie samoobsługowe. Nadal nie mogę dowiedzieć się takim przypadku należy:
próbkę
// 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
Pytanie
Jak mogę wdrożyć opisowy komunikat wymuszenia w tym przypadku w xUnit który jeszcze nie ma takiego przeciążenie?
Nie mam pojęcia, na czym polega problem. Dlaczego nie używasz tylko 'Assert.AreEqual (0, client.ErrorMessage.Length, client.ErrorMessage);' jak wskazałeś w komentarzu? – Kritner
Nie ma takiego przeciążenia w XUnit. To jest połączenie NUnit. Zobacz zdanie zaczynające się od razu: programista prosi o takie przeciążenie, a zespół XUnit odrzuca z powodu cytowanego "Jesteśmy zwolennikami samokodującego kodu, który zawiera twoje twierdzenia" –
@ g.pickardou, Dlaczego nie skorzystać z sugestii pod linkiem. Jak płynne asercje lub twórz własne twierdzenie, które otacza 'Assert.True lub Assert.False', które pozostały przy przeciążeniu wiadomości. Zostało to wspomniane w dalszej części "Możesz dostarczać wiadomości do Assert.True i .False.Jeśli po prostu nie możesz żyć bez wiadomości (i odmówić użycia innego asercji), zawsze możesz wrócić do: Assert.True (numer == 2, "To jest moja wiadomość"); ' – Nkosi