0

如何在 EasyMock 中模拟链式方法调用?我有一个链接的方法调用:

srvc.getServiceManager().getDetails(Integer.parseInt(msgId));

我试过做

expect(srvc.getServiceManager().getDetails(Integer.parseInt(msgId)))
  .andReturn((String) notNull());

这抛出一个NullPointerException.

试图将其分解为两个期望也是行不通的。在那种情况下,我得到

匹配器调用的使用超出预期

我该如何解决这个问题?

4

1 回答 1

1

打破两个期望非常好,如下所示:

final Service mockService = createMock(Service.class);
final ServiceManager mockServiceManager = createMock(ServiceManager.class);

final Capture<Integer> capturedMsgId = new Capture<Integer>();

expect(mockService.getServiceManager()).andReturn(mockServiceManager);
expect(mockServiceManager.getDetails(capture(capturedMsgId))).andReturn("someString");

你不应该对此有任何例外。

于 2013-06-01T12:51:41.520 回答