如何模拟CustomEqualityComparer

本文关键字:CustomEqualityComparer 模拟 何模拟 | 更新日期: 2023-09-27 18:20:43

我创建了一个自定义的相等比较器,并对该比较器运行了适当的测试。

现在我正试图模拟它,这样我正在测试的使用比较器的类就不必传递真实的东西。

我的方法调用看起来像:

left.Except(right, customEqualityComparer);

其中变量"left"answers"right"是任意类型的两个列表,customEqualityComparer是我的自定义相等比较器。

我的问题是,我不知道如何嘲笑customEqualityComparer,因为它必须以现实的方式行事。

我正在考虑创建一个包含方法的类:

public List<object> LeftExceptRight(customEqualityComparer, left, right){}

嘲笑整个方法。这太夸张了吗?我看不出其他选择了。。

如何模拟CustomEqualityComparer

这太夸张了吗?

听起来像。你为什么一开始就想嘲笑你的比较器?在测试方面,它是否做了一些特别困难的事情,比如使用外部web服务或数据库?(这将是不寻常的。)

只要你的比较器本身也经过了彻底的测试,我认为在现实中使用它的测试中使用它没有问题。嘲笑它不会给你带来任何好处——事实恰恰相反。当你在测试中使用它时,你将有效地测试调用代码和比较器之间的集成。。。他们在一起工作得很好,而不仅仅是一个人。

我知道有些人固执地坚持单元测试一次只需要测试一个类的代码。。。但实用主义让我相信,尽管嘲讽在很多情况下确实很有价值,但它很容易被过分使用,而只使用实际实现的简单方法往往是可行的。

相关文章:
  • 没有找到相关文章