对于将来,我会推荐伊兰·哈雷尔(Eran Harel)的答案(将
new工厂搬迁到可以嘲笑的工厂)。但是,如果你不想更改原始源代码,请使用非常方便且独特的功能:spies。从文档中:
你可以创建真实对象的间谍。当你使用间谍时,将调用实际方法(除非对方法进行了加注)。
真正的间谍应该小心谨慎地使用,例如在处理遗留代码时。
在你的情况下,你应该写:
TestedClass tc = spy(new TestedClass());LoginContext lcMock = mock(LoginContext.class);when(tc.login(anyString(), anyString())).thenReturn(lcMock);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)