gpt4 book ai didi

unit-testing - 为什么在单元测试时接口(interface)模拟比子类模拟更可取?

转载 作者:行者123 更新时间:2023-12-04 08:06:02 25 4
gpt4 key购买 nike

当一个类实现一个接口(interface)时,很容易模拟,但是,你必须为它创建一个接口(interface)。

您还可以通过子类化和覆盖来模拟。如果您的基类提供了一个无参数的 protected 构造函数,那么您的子类模拟不会与基类构造函数中的更改相关联。

乍一看,创建模拟的子类化方法似乎比为所有内容创建接口(interface)更可取,但显然,大多数人不是这样做的。

那么,为什么基于接口(interface)的模拟被认为比基于子类的模拟更好呢?

最佳答案

当您进行子类型化和覆盖时,您可能会错过覆盖您应该覆盖的方法之一,并实际运行您希望将其与测试隔离的“生产”代码。

当你模拟一个接口(interface)时,它的 100% 的行为必须被模拟。模拟未明确说明的任何内容都会引发异常,并强制您解决它。

关于unit-testing - 为什么在单元测试时接口(interface)模拟比子类模拟更可取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32271478/

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