MbUnit:比较不同的对象实例

Adr*_*ore 4 c# mbunit serialization

我想知道是否有办法比较MBUnit中的两个对象,以便在对象"看起来"相同时传递测试,即使这些是不同的实例?

例如:

[TestFixture]
class ComparisonTestFixture
{

    class foo
       {
           public string bar;
       }

    [Test]
    public void ComparisonTest()
    {

        foo foo1 = new foo()
           {
               bar = "baz"
           };

        foo foo2 = new foo()
            {
                bar = "baz"
            };


        //This assertion should be successful, but it isn't
        //*** Failures ***
        //Expected values to be equal.
        //Expected Value & Actual Value : {foo: bar = "zzz...."}
        //Remark : Both values look the same when formatted but they are distinct instances.
        Assert.AreEqual(foo1,foo2);
    }
}
Run Code Online (Sandbox Code Playgroud)

Assert.AreEqual()不适用于此(测试失败,请参阅上面的源代码).因为它标注"两个值在格式化时看起来相同但它们是不同的实例",我认为必须有一些方法来构建MbUnit已经没有在我自己的代码中将对象序列化为XML.

我是否必须为此编写自己的Assert扩展方法?

Jef*_*own 7

Yann还实现了一个StructuralEqualityComparer,它给出了每个属性的一组lambdas,逐个比较属性值.值得一看.

更多信息:http://www.gallio.org/api/html/T_MbUnit_Framework_StructuralEqualityComparer_1.htm