Java 模仿一个具体的类-It';它总是空的

Java 模仿一个具体的类-It';它总是空的,java,spring,mocking,mockito,Java,Spring,Mocking,Mockito,我试图用Mockito模拟一个具体的类。但是,它在被测试的服务中仍然为null 我的具体课程和服务: //My Concrete Class @Component("supporter") public class Supporter { @Autowired private IDriver driver; public int someMethod(int){...} ... } //Service Class that uses this abstract clas

我试图用Mockito模拟一个具体的类。但是,它在被测试的服务中仍然为null

我的具体课程和服务:

//My Concrete Class
@Component("supporter")
public class Supporter
{
   @Autowired
   private IDriver driver;
   public int someMethod(int){...}
   ...
}

//Service Class that uses this abstract class
public class Service implements IService
{
   private ExceptionHandler exceptionHandler;
   @Autowired
   public void setExceptionHandler(ExceptionHandler exceptionHandler) {
          this.exceptionHandler = exceptionHandler;
   }

   private Supporter supporter;
   @Autowired
   public void setSupporter(Supporter supporter) {
        this.supporter = supporter;
   }
   public int hookItem(int arg)
   {
      ...
      //supporter is always null while mock testing <----
      int count = supporter.someMethod(arg);
      ...
      return count;
   }
}
它为空的原因是什么?
(我的类/服务是Springbeans)

查看测试类,您似乎没有将模拟的
支持程序
实例注入
服务
实例,例如,尝试添加
服务.setSupporter(支持程序)service.hookItem(1)
之前,请执行code>

查看测试类,似乎您没有将模拟的
支持程序
实例注入
服务
实例,例如,尝试添加
服务.setSupporter(支持程序)service.hookItem(1)
之前,请执行code>

服务
变量来自哪里?还有哪一个是
null
?添加了“服务”创建(在@before方法中)supporter'在服务类中为空(如注释中所示)您是否调用了Mockito.initMocks(此)?是的,它在AbstractTestMockito类中作为@BeforeMethod完成
服务
变量来自何处?还有哪一个是
null
?添加了“服务”创建(在@before方法中)supporter'在服务类中为null(如注释所示)您是否调用了Mockito.initMocks(此)?是的,它在AbstractTestMockito类中作为@BeforeMethodThis完成。非常感谢。不过,我有一个跟进问题。我已经更新了我的问题-我还有一个接口ExceptionHandler。为什么我不需要显式地设置它(因为它在服务中不是null)?Mockito是否能够自动注入接口Mock?是的,当我阅读您的示例和注释时,我知道您正在使用
@Mock
注释以及
Mockito.initMocks(此)您可以在类的JavaDoc中阅读更多关于这个(和其他特性)的内容。此外,大约一年前我写了一篇关于这个主题的文章,你可能会觉得有趣。就是这样。非常感谢。不过,我有一个跟进问题。我已经更新了我的问题-我还有一个接口ExceptionHandler。为什么我不需要显式地设置它(因为它在服务中不是null)?Mockito是否能够自动注入接口Mock?是的,当我阅读您的示例和注释时,我知道您正在使用
@Mock
注释以及
Mockito.initMocks(此)您可以在类的JavaDoc中阅读更多关于这个(和其他特性)的内容。此外,大约一年前我写了一篇关于这个主题的文章,你可能会觉得有趣。
public class ServiceTest extends AbstractTestMockito
{
    ...
    IService service = null;
    @Mock
    private ExceptionHandler exceptionHandler;

    @BeforeMethod
    public void setup() {
        service = new Service();
    }

    @Test(enabled=true)
    public void shouldDoSomething()
    {
        Supporter supporter = Mockito.mock(Supporter.class);
        given(supporter.someMethod(1)).willReturn(new Integer(10));

        final int response = service.hookItem(1);
        //Assert...
    }
}