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扩展方法?
Yann还实现了一个StructuralEqualityComparer,它给出了每个属性的一组lambdas,逐个比较属性值.值得一看.
更多信息:http://www.gallio.org/api/html/T_MbUnit_Framework_StructuralEqualityComparer_1.htm