我是Mockito框架的初学者,我在确定模拟和注入的mocks对象时遇到了一些问题,实际上我的项目中有以下结构。
//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);
}
是否正确选择了模拟和注入的模拟对象? 如果是,我会继续收到此异常消息:
想要但未被援引:
WS.call1(
........
);
实际上,这个模拟没有互动。
答案 0 :(得分:0)
您正在使用@Mock
和@Autowired
。这没有意义。您可以模拟或自动装配您的bean。删除自动装配
@Mock
WebService WS;
@InjectMock
A a;