gpt4 book ai didi

java - Mockito spy 功能

转载 作者:行者123 更新时间:2023-12-02 04:16:58 26 4
gpt4 key购买 nike

我正在测试一些使用 Mockito spy 来监视真实对象的代码。例如,我创建了一个 Map 并在其上调用 size() 方法,并验证是否调用了 size() 方法。

我有以下代码:

Map<String, String> mapTest = new HashMap<>();
Map<String, String> spyMap = spy(mapTest);
mapTest.size();
verify(spyMap, times(1)).size();

当我运行测试时,出现错误,指出与 size() 方法没有交互。如果我调用spyMap.size(),那么这个测试就会顺利进行。我应该做什么来监控“mapTest”

最佳答案

Mockito 中 verify 方法背后的想法是验证 MOCKED 或 PARTALLY MOCKED 对象是否已完成某些操作。您无法真正监视不是通过 Mockito 创建的真实对象。但是,您可以使用通过 Mockito 创建的 spy 对象。 spy 是部分模仿者。模拟的其余部分与原始版本相同。这个想法是你然后重写你想要 stub 的方法。因此,从某种意义上说,如果您不重写任何内容,那么当您不重写任何方法时,您就会拥有原始对象的副本。因此,要真正测试 size 方法被调用了多少次,您可以创建 HashMap 的 spy ,然后注入(inject)它并让您的代码对其进行处理以查看它被调用了多少次。通常这迫使我们重构代码以使其可测试。您可能需要找到一种方法来注入(inject) HashMap,以便可以插入 spy ,然后对其应用断言。

关于java - Mockito spy 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33204305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com