gpt4 book ai didi

c# - MbUnit:比较不同的对象实例

转载 作者:太空狗 更新时间:2023-10-30 00:09:23 24 4
gpt4 key购买 nike

我想知道是否有一种方法可以比较 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);
}
}

Assert.AreEqual() 对此不起作用(测试失败,请参阅上面的源代码)。由于它指出“两个值在格式化时看起来相同,但它们是不同的实例”,我认为必须有某种方法可以在 MbUnit 中内置执行此操作,而无需在我自己的代码中将对象序列化为 XML。

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

最佳答案

Yann 还实现了一个 StructuralEqualityComparer,它在给定每个属性的一组 lambda 表达式的情况下逐个比较属性值。值得一看。

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

关于c# - MbUnit:比较不同的对象实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1327567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com