title: How to implement XUnit descriptive Assert message?
body: <p><strong>Context</strong></p>
  
  <p>in XUnit github I found this: <a href="https://github.com/xunit/xunit/issues/350" rel="noreferrer">Add Assert.Equal(expected, actual, message) overload #350</a> <em>(so a developer ask for a non existing overload see below)</em></p>
  
  <p>Quote from the answer:</p>
  
  <blockquote>
    <p>We are a believer in self-documenting code; that includes your assertions.</p>
  </blockquote>
  
  <p><em>(so the XUnit team rejects it)</em></p>
  
  <p>OK, I got it. I also believe the self documenting code. Still I can not find out 
  this use case:</p>
  
  <p><strong>Sample</strong></p>
  
  <pre><code>// 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
  </code></pre>
  
  <p><strong>Question</strong></p>
  
  <p>How can I implement a descriptive assert message in this case in XUnit which still has no such an overload?</p>