0

我正在使用 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”中包含什么?

4

2 回答 2

1

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

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

这是 mocking 背后的核心概念。

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

于 2012-12-20T22:42:04.160 回答
0

您需要制作一个Map<EntityKey,Element<Movie>>适合在其余测试中使用的。我不太确定您的测试实际上试图断言什么,但无论它是什么,请Map相应地选择。您的Map对象就是您想要从中返回的对象thenReturn

于 2012-12-21T01:43:05.400 回答