如何确定Mockito中的模拟和注射量对象



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

//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( ........);
实际上,与此模拟的相互作用为零。

您一起使用@Mock@Autowired。这没有意义。您要么嘲笑或自动释放豆子。删除AutoWRIRING

@Mock
WebService WS;
@InjectMock
A a;

相关内容

  • 没有找到相关文章

最新更新