gpt4 book ai didi

java - when() 是如何工作的?

转载 作者:搜寻专家 更新时间:2023-11-01 03:26:27 24 4
gpt4 key购买 nike

在下面的例子中

when(myMethod("abc", 123)).thenReturn(456);

when() 方法如何在不实际调用 myMethod() 的情况下捕获方法名称和参数?

我能否编写一个方法来执行与 when() 相同的操作,以便获得一个方法指针和一个 Object 数组作为稍后调用的参数?

最佳答案

方法 myMethod 被调用。但它是在模拟对象上调用的——这就是“技巧”。

当然你可以编写接受“方法指针”(在 Java 中,它是 Method 类的对象)和一些参数的代码,并使用 invoke ,但与直接调用模拟对象的 myMethod 相比,这样做实际上并没有给你带来任何好处。

更常见的是when调用如下:

MyObject myObject = mock(MyObject.class);
when(myObject.myMethod("abc", 123)).thenReturn(456);

尝试打印(或记录)表达式

myObject.getClass().getName()

这里。您会看到模拟对象的类实际上不是 MyObject。但它属于具有相同接口(interface)的类。对该对象的调用更新了一些内部状态。这允许 Mockito 跟踪它的使用方式,并允许您断言各种事情。

关于java - when() 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12756615/

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