【问题标题】:writing unit test using mockito使用 mockito 编写单元测试
【发布时间】:2012-12-20 22:37:20
【问题描述】:

我正在使用 mockito 在 java 中编写单元测试。

这是我要测试的语句。

final Map<EntityKey, Element<Movie>> resultMap = Watcher.watch(movies);

movies 是电影名称的集合,是识别电影的关键。

我嘲笑了观察者类

final Watcher<Movie> watcher = mock(Watcher.class);

Mockito.when(watcher.watch(Matchers.any(Set.class))).thenReturn()

在“thenReturn”中包含什么??

【问题讨论】:

  • 如果你要存根 watch 方法,你要测试什么行为?

标签: mockito


【解决方案1】:

thenReturn 函数中,您需要传递一个与您要模拟的方法的返回类型相同类型的对象。

然后在该对象上调用此方法时,它将返回您传递给thenReturn 的对象,而不是实际进入函数。

这是模拟背后的核心概念。

话虽如此。如果您正在尝试测试 Watcher.watch 方法,那么您可能无论如何都不想模拟它。你应该只模拟那些你没有测试的类。

【讨论】:

    【解决方案2】:

    您需要创建一个Map&lt;EntityKey,Element&lt;Movie&gt;&gt;,以便在其余测试中使用。我不太确定您的测试实际上试图断言什么,但无论如何,请相应地选择Map。您的 Map 对象是您想要从 thenReturn 返回的对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 2013-07-05
      • 1970-01-01
      • 2021-11-17
      • 2014-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多