是否需要创建Mockito.mmock()的接口或实现类



我阅读了教程,但不明白应该实现多少模拟对象。我们是将一个接口还是整个实现的类传递给mock()?

如果您没有实现呢?你需要创建一个接口吗?假设你忽略了一些方法,而忽略了实际的实现

来自mockito.org的示例

//mock creation
List mockedList = mock(List.class);

我需要用android List类的方法创建一个类"List"吗?

Mockito对每个方法的默认实现都是由RETURNS_DEFAULTS提供的,它(除非另有配置)遵循ReturnsEmptyValues:

每个Mockito模拟的默认答案。

  • 为基元返回方法返回适当的基元
  • 为基元包装类返回一致的值(例如,int返回方法返回0,也)
  • 为集合返回方法返回空集合(适用于最常用的集合类型)
  • 返回toString()方法的mock描述
  • 如果引用等于可比较#compareTo(T other)方法的非零引用,则返回零(请参阅第184期)
  • 返回java.util.Optional#empty()empty对于Optional为Optional(请参阅问题191)
  • 对其他所有内容返回null

对于传递给Mockito.mock()的类上的任何可模拟但未缓冲的方法,默认情况下,无论传递的是具体类还是接口,模拟方法都将具有此行为事实上,Mockito鼓励您只截取对测试中的系统有价值的方法,并让默认值适用于其他所有方法。如果您"忘记"存根一个方法,或者在编写测试后添加了新方法,也会出现这种情况。

请注意,对于Mockito.spy,默认行为是将传递给spy的实例委托给(的副本),如果愿意,可以通过将其他参数传递给Mockito.mock来更改此"默认答案"。

相关内容

  • 没有找到相关文章

最新更新