Mockito mock() 和调用记录



我正在使用Mockito进行一些模拟/测试。我的场景很简单:我有一个使用 mock() 模拟的类,并且我(间接)大量调用该类(即 ~100k)

Mockito似乎每次调用都会保存一些数据,所以我在某个时候耗尽了内存。

我想告诉 mockito 不要持有任何数据(我不打算打电话给verify()等,我只是不在乎,对于这个特定的测试,那个模拟会达到什么)。我不想在每次调用时都创建新的模拟。

您可以使用

Mockito.reset(mock),请注意,在您调用它之后,您的模拟将忘记所有存根以及所有交互,因此您需要重新设置它。Mockito关于该方法的文档有以下使用说明:

List mock = mock(List.class);
when(mock.size()).thenReturn(10);
mock.add(1);
reset(mock);
//at this point the mock forgot any interactions & stubbing

他们也确实不鼓励使用这种方法,就像对你的问题的评论一样。 通常这意味着您可以重构测试以使其更加专注:

而不是 reset(),请考虑在冗长、过度指定的测试中编写简单、小而集中的测试方法。第一个潜在的代码气味是测试方法中间的 reset()。这可能意味着您测试太多了。遵循你的测试方法的耳语:"请让我们保持小,专注于单一行为"。在 mockito 邮件列表中有几个关于它的线程。

相关内容

  • 没有找到相关文章

最新更新