mockito

Mockito如何mock一条链式调用

北城余情 提交于 2020-10-25 01:44:05
在写单元测试的时候,不免可能需要mock一些对象出来,并且mock一些方法调用去返回一个自己想要的对象。一般的使用是这样的: FinalPumpkin pumpkin = mock(FinalPumpkin.class); when(pumpkin.getName()).thenReturn("www.pkslow.com"); 这样我们便可以自定义这个类 getName() 方法的返回,以达到我们测试特定情况的需要。 但假设可能我们要影响的是下面这样的返回结果呢? pumpkin.getWeb().getFactory().getContainer().getHostname() 那可能我们就要先mock四个对象出来,然后再一层层mock方法的返回结果了。如下: FinalPumpkin pumpkin = mock(FinalPumpkin.class); Web web = mock(Web.class); Factory factory = mock(Factory.class); Container container = mock(Container.class); when(pumpkin.getWeb()).thenReturn(web); when(web.getFactory()).thenReturn(factory); when(factory