c# - Java 中哪个最好;模拟接口(interface)还是模拟类?

标签 c# java unit-testing mocking

首先,我要声明一下,我不是 Java 开发人员,我目前使用 C# 进行开发,因此我对 Java 所做的任何假设或陈述可能都是不正确或信息不充分的。

当在 .Net 中使用模拟对象编写单元测试时,99% 的时间我们都会模拟接口(interface)。可以模拟类,但您只能控制虚拟(因此可模拟)方法。

在 Java 中,由于方法默认是虚拟的,所以我想模拟类将与模拟接口(interface)一样,因为所有内容都将被模拟行为覆盖。

那么,在 Java 中对接口(interface)(以及因此在单元测试中模拟接口(interface))的依赖仍然是最佳实践,还是大多数 Java 开发人员使用类来减少类型数量(不需要接口(interface))?

最佳答案

我也会用 Java 模拟接口(interface)。我认为这就是整个想法:客户端只知道接口(interface)引用类型。您可以在其后面注入(inject)模拟实现,而客户端却一无所知。

关于c# - Java 中哪个最好;模拟接口(interface)还是模拟类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10353222/

相关文章:

java - 即使使用线程安全实现,如何修复异步java代码失败的问题?

java - 使用 Guice 进行模拟并拥有用于测试目的的真实对象

unit-testing - 单元测试 Web API - 如何获取身份验证 token

java - 从源代码构建 bundle 的 Android Google Apps

django - 如何将 Django 模拟实例传递给类方法?

C# 在写入文件时忽略字符串中的\n

c# - MVC 日期时间模型绑定(bind)

c# - 反序列化 SOAP 消息

c# - Linq:返回大型数据集的结果计数

java - 在java中读取文本文件时读取特定行