text: Q:
  
  Is it possible to alter the test used by NUnit when returning a value from a test
  
  I have a set of tests which are verifying a contract with an external API. I want the test class to implement the contract interface so that if it is ever changed the test class itself enforces that tests are written for any new methods.
  So something like
  public interface IExternalThing {
    Dictionary<string, int> GetSomeValues(int id);
  }
  
  [TestFixture]
  public class ContractVerification : IExternalThing {
    private realExternalThing = new ExternalThing();
  
    private static IEnumerable GetValuesSource {
      get
      {
        yield return new TestCaseData(0).Returns(
          new Dictionary<string, int> {
            {"thing", 1}
          }
        );
      }
    }
  
    [Test]
    [TestCaseSource("GetValuesSource")]
    public Dictionary<string, int> GetSomeValues(int id) {
        return realExternalThing.GetSomeValues(id);
    }
  }
  
  This approach has worked so far but as this method returns a Dictionary NUnit is reporting failure with the message:
  > Expected and actual are both
  > <System.Collections.Generic.Dictionary`2[System.String,System.Int32]>
  > with 1 elements
  
  I suppose I could approach this another way but if I could just ask NUnit to test Is.EquivalentTo instead of simple equality that would be fantastic.
  Is that possible?
  
  A:
  
  http://www.nunit.org/index.php?p=collectionAssert&r=2.5 - CollectionAssert.AreEquivalent()
  
  