如何轻松模拟Class.method.method

时间:2019-05-22 11:20:02

标签: mocking mockito easymock

需要模拟class.method.method,请参见以下示例 它总是给Null指针异常。

期望(                 EasyMock.mock(TBXClient.class).getStatus()。getMessage())。andReturn(“ check”);

有人可以帮我解决吗?

1 个答案:

答案 0 :(得分:1)

没有模拟链接。 getStatus的结果也应该是一个模拟,您将在其上模拟getMessage,然后一切都会按预期工作

TBXClient client = mock(TBXClient.class);
Status status = mock(Status.class);
expect(client.getStatus()).andReturn(status);
expect(status.getMessage()).andReturn("check");
replay(client, status);

但是,Status看起来很像一个值类型,因此它可能不需要被模拟。在这种情况下,我会做。

TBXClient client = mock(TBXClient.class);
expect(client.getStatus()).andReturn(Status.CHECK);
replay(client, status);