org.easymock.EasyMock.capture 在 Java 8 到 11 中的替代

Alternative to org.easymock.EasyMock.capture in Java 8 to 11

我正在尝试在我的测试中捕获值

...
final Capture<MyDTO> myDTOCaptured = new Capture<MyDTO>();

EasyMock.expect(this.serviceMock.execute(capture(myDTOCaptured)).andReturn(someResult);
...

文档说:

已弃用 API

org.easymock.EasyMock.capture(Capture) Because of harder erasure enforcement, doesn't compile in Java 7

http://easymock.sourceforge.net/api/easymock/3.1/deprecated-list.html

版本 3.1 是我们使用的版本。

在 Java 8+ 中是否有其他捕获方法?我想替代方案是升级版本。

升级到最新的 EasyMock (4.2) 并使用泛型方法 capture(Capture<T> captured) 作为替代

Expect any object but captures it for later use

Example:

final Capture<TwoWayChannelMessage> initiateCapture = new Capture<>();
connection.sendToClient(capture(initiateCapture));

该网站已过时。真正最新的 EasyMock 网站是 http://easymock.org/。 EasyMock 很久以前就搬出了 SourceForge。

最新的 EasyMock 是

Capture<TwoWayChannelMessage> initiateCapture = EasyMock.newCapture();
connection.sendToClient(capture(initiateCapture));