gpt4 book ai didi

java - 如何确定mockito中的Mock和injectMock对象?

转载 作者:太空宇宙 更新时间:2023-11-04 10:49:56 35 4
gpt4 key购买 nike

我是 Mockito 框架的初学者,在确定模拟和注入(inject)的模拟对象时遇到一些问题,实际上我的项目中有以下结构。

//WebService Interface

Interface WebService{
@Gateway(...)
public x call1(parameters);
}

//Class that implements another interface

Class A implements interfaceA{

@Autowired
WebService WS;

public void M1(){
.....
WS.call1(parameters);
.....
}

}

//Test Class
@Mock
@Autowired
WebService WS;

@InjectMock
@Autowired
A a;

@Before
setup(){
MockitoAnnotations.initMocks(this);
}

@Test
@Rollback(true)
@Transactional
public void Test() {

when(WS.call1(parameters)).thenReturn(x);
actualResult = a.M1();
assertNotNull(actualResult);
verify(WS, Mockito.times(1)).call1(parameters);
}

模拟和注入(inject)的模拟对象是否选择正确?
如果是,我不断收到此异常消息:

想要但未调用:WS.call1( …………);
实际上,与此模拟的交互为零。

最佳答案

您正在同时使用@Mock@Autowired。这没有道理。您可以模拟或 Autowiring 您的 bean。删除 Autowiring

@Mock
WebService WS;

@InjectMock
A a;

关于java - 如何确定mockito中的Mock和injectMock对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47967355/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com