我是Mockito的新手,正在尝试模拟服务方法。但是,Mockito无法正确模拟该功能。

这是测试代码的一部分:

@Mock
ConditionalLimitDao conditionalLimitDao;

@InjectMocks
ConditionalLimitFilingServiceImpl conditionalLimitFilingService;

Mockito.when(conditionalLimitDao.getAllConditionalLimitProductGroups()).thenReturn(Arrays.asList(clpg1));


班级:

public class ConditionalLimitFilingServiceImpl implements ConditionalLimitFilingService {

    @Inject
    private ConditionalLimitDao conditionalLimitDao;

    @Override
    public List<ConditionalLimitFiling> getConditionalLimitFiling(String filingMonth, Date reportDate)
            throws SQLException, RemoteException {

        conditionalLimitProductGroups = getConditionalLimitProductGroups();

        return something;
    }

    private List<ConditionalLimitProductGroup> getConditionalLimitProductGroups() {
        return conditionalLimitDao.getAllConditionalLimitProductGroups();
    }
}


我期望getAllConditionalLimitProductGroups()返回一个非空列表。但是,它返回一个空列表。有人可以帮忙吗?

最佳答案

我认为您忘记添加此行

MockitoAnnotations.initMocks(this);


这行代码应放在@Before方法中,以为每个测试初始化​​模拟。

09-26 15:28