通过Mockito和JUNIT和CDI将模拟服务转化为服务

时间:2019-06-03 19:29:48

标签: junit mocking mockito cdi

我有3个服务

class Service1{
    @Inject private Service2 service2;

}
 class Service2{
    @Inject private Service3 service3;

}
class Service3{

 public Object test(){
 ...}

}

 class TestService1{
    //do a test and mock the methode in service3 
   when(service3.test()).doReturn(Something());


}

我必须模拟服务3中注入服务2中的方法,而服务1中注入方法 任何想法 ?我必须像直接测试一样,别无选择。

1 个答案:

答案 0 :(得分:0)

由于最后一个服务是对rest服务的调用,因此我创建了一个接口IServiceC,然后对其进行2种实现,一个在main / src / java中,另一个在test / src / java中,并且所有服务均返回硬编码值。因为这里的复杂性是说好,我将注入所有服务,但不注入最后一个,并告诉第二层我注入您,但我也嘲笑您,等等...

管理起来非常复杂,使用模拟类实现,我不必关心这个主题,我使用arquillian,所有注入都将注入(我从war软件包中排除了默认实现,并将模拟实现添加到了战争)