title: FluentAssertions: ShouldBeEquivalentTo vs Should().Be() vs Should().BeEquivalentTo()?
body: <p>Can anybody summarize differences and usage scope between them?</p>
  
  <p>I read SO articles,</p>
  
  <ul>
  <li><a href="https://stackoverflow.com/questions/20257861/shouldbeequivalentto-failing-for-equivalent-objects-when-the-subject-is-a-dateti#comment30330255_20257861">ShouldBeEquivalientTo()</a>: ShouldBeEquivalentTo() is intended to be used for comparing complex object graphs rather than the primitive types part of the .NET framework. </li>
  <li><a href="https://stackoverflow.com/a/16154559/361100">Should().BeEquivalentTo()</a>: individual items Equals() implementation to verify equivalence and has been around since version 1. The newer ShouldBeEquivalenTo() introduced in FA 2.0 is doing an in-depth structural comparison and also reporting on any differences.</li>
  <li>Should().Be(): <em>cannot find.</em></li>
  </ul>
  
  <p>In my humble understanding, <code>ShouldBeEquivalientTo()</code> and <code>Should().BeEquivalentTo()</code> work similar if <code>Should().BeEquivalentTo()</code> does in-depth comparison.</p>