Java 不使用带Autowire的构造函数的模拟服务

Java 不使用带Autowire的构造函数的模拟服务,java,spring,spring-boot,junit,junit5,Java,Spring,Spring Boot,Junit,Junit5,我想编辑此代码以使用mock for services。此代码工作正常: @Service public class BinCountryCheckFilterImpl { private RiskFilterService riskFilterService; private Terminals terminal; @Autowired public BinCountryCheckFilterImpl(Terminals terminal, RiskFilt

我想编辑此代码以使用mock for services。此代码工作正常:

@Service
public class BinCountryCheckFilterImpl {

    private RiskFilterService riskFilterService;
    private Terminals terminal;

    @Autowired
    public BinCountryCheckFilterImpl(Terminals terminal, RiskFilterService riskFilterService) {  
        this.terminal = terminal;
        this.riskFilterService = riskFilterService;
    }

    public void validateBinCountryCheckFilter(Terminals terminal) throws JAXBException, JsonProcessingException {

        List<RiskFilters> filter_list = riskFilterService.findRiskFiltersByTerminalIdAndType(terminal.getId(), "BinCountryCheckFilter");
    }
}
此代码不起作用:

    @Service
public class BinCountryCheckFilterImpl {

    @Autowired
    @Qualifier("riskFilterService")
    private RiskFilterService riskFilterService;

    public Response validateBinCountryCheckFilter(Merchants merchant, Contracts contract, Terminals terminal,
              PaymentTransaction message, HttpServletRequest request) throws JAXBException, JsonProcessingException {
               ...........

    }

}
由于某种原因,当我运行JUnit测试时,
riskFilterService
为空。有什么方法可以通过JUnit测试正确地实现服务吗?
在我的例子中,我不想从构造函数调用
终端,riskFilterService

当您使用字段注入而不是构造函数注入时,您必须在测试用例中调用以下语句来初始化模拟(理想情况下是在
之前标记为
@的方法中)

MockitoAnnotations.initMocks(this);
    @Service
public class BinCountryCheckFilterImpl {

    @Autowired
    @Qualifier("riskFilterService")
    private RiskFilterService riskFilterService;

    public Response validateBinCountryCheckFilter(Merchants merchant, Contracts contract, Terminals terminal,
              PaymentTransaction message, HttpServletRequest request) throws JAXBException, JsonProcessingException {
               ...........

    }

}