首先,我要声明一下,我不是 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/