首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PEX:如何在pex中测试相等方法?

PEX:如何在pex中测试相等方法?
EN

Stack Overflow用户
提问于 2010-09-20 18:13:54
回答 1查看 170关注 0票数 0

所以我在这里玩PEX,这似乎是一个很好的想法。

然而,我遇到了一些问题,比如我没有办法使用参数单元测试来测试equals方法。

也许没有办法,也许这是一种我还没有弄明白的技术。

一定有人有一个像样的想法。

例如,如果我在moq中执行此操作,我将确保两个对象上的所有属性都被读取,并亲自进行比较以验证它们。然而,我不知道如何在参数化测试中使用这种方法。

问题是,我需要验证在我的业务逻辑中是否进行了方法调用以及是否设置/读取了属性。我不知道如何在PEX中做到这一点,也没有大量的文档。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-21 11:26:36

您可以检查与等式的数学定义相关的一些基本属性:

  • 不崩溃:a == b从不抛出exception
  • symmetric:(a == b) == (b == a)
  • 反身:(a == a) == == (a == b) && (b == c) ==> a == c
  • Func f,a == b f(a) f(B)

所有这些都很好,但绝对不能保证你的等价性有效。但在某些情况下,您需要指定相等对您来说意味着什么。例如,属性P的值应该相等,等等。最终,您将得到作为测试的等价性的第二个规范。

当你研究与GetHashCode的关系时,事情变得更加有趣:

  • a.GetHashCode() !+ a.GetHashCode()

b.GetHashCode() ==> a != a.GetHashCode() a.GetHashCode() ==

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3750444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档