2 回答

TA貢獻(xiàn)1946條經(jīng)驗 獲得超3個贊
根據(jù)我發(fā)現(xiàn)的這個問題,一種可能的解決方法是使用
因此,代替 spy(proxy) 使用 mock(TestSubject.class, delegatesTo(springProxy))。
在你的情況下(未經(jīng)我測試),那可能是
return Mockito.mock(VirtualControllerService.class, AdditionalAnswers.delegatesTo(virtualControllerService));
AdditionalAnswers.delegateTo
有關(guān)詳細(xì)信息,請參閱。請注意,您無法在您的間諜實例中對內(nèi)部方法調(diào)用進(jìn)行存根或驗證(只會跟蹤對模擬對象的方法調(diào)用)。用例:
對于使用通常的間諜 API 難以模擬或監(jiān)視的對象的間諜或部分模擬很有用??赡艿挠美阂呀?jīng)自定義代理對象

TA貢獻(xiàn)1877條經(jīng)驗 獲得超1個贊
您可以在測試類中使用 @Mock 注釋CreateIfcClusterTaskTest來模擬服務(wù)實例,而不是在您的配置中創(chuàng)建服務(wù)類的 bean。
它看起來像這樣:
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = { CreateIfcClusterTaskTest.Config.class })
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
public class CreateIfcClusterTaskTest {
@Mock
VirtualControllerService virtualControllerService;
}
而且您必須使用 Mockito 的注釋初始化對象,如下所示:
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
}
希望有所幫助。
添加回答
舉報