0

首先,让我透露一下,我不是 Java 开发人员,我目前使用 C# 进行开发,因此我对 Java 所做的任何假设或陈述都可能是不正确的或消息不灵通的。

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

在 Java 中,由于默认情况下方法是虚拟的,所以我想模拟一个类与模拟一个接口是一样的,因为一切都将被模拟行为所覆盖。

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

4

4 回答 4

1

我实际上做了相反的转换——即在 java 中模拟,然后转换到 csharp。我工作的公司传统上仍然模拟接口,如果具体确实有接口的话。否则,我们确实模拟了由于您指定的原因而起作用的实际课程。因此,根据我的经验,出于明显的依赖性原因,我们优先考虑接口。

对于 java,我们选择了 Mockito 模拟框架,我认为它工作得很好。

http://code.google.com/p/mockito/

于 2012-04-27T15:19:23.883 回答
1

我也会在 Java 中模拟接口。我认为这就是整个想法:客户只知道接口引用类型。您可以在其后面注入一个模拟实现,而客户端并不聪明。

于 2012-04-27T15:21:15.703 回答
1

我推荐的另一个好的框架是 EasyMock。

http://easymock.org/

它的学习曲线很低,我使用它时没有任何问题。

于 2012-04-27T16:19:51.900 回答
0

试试 Mockito http://code.google.com/p/mockito/。非常简单,仍然很强大!

于 2012-04-27T18:53:43.620 回答