Java – mockito mock object returns null

Hi, I'm trying to implement some tests for my JSF application and mocks. I use mockito (I also use springs)

@RunWith(MockitoJUnitRunner.class)
public class GeneralConfigServiceImpltest  {

    private GeneralConfigService generalConfigService;

    @Mock
    private GeneralConfigDAO generalConfigDAO;

    @Mock
    private GeneralConfig gen;

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        generalConfigService = new GeneralConfigService();
        ReflectionTestUtils.setField(generalConfigService,"generalConfigDAO",generalConfigDAO);                  
    }

    @Test
    public void testAddGeneralConfigCallDAOSuccess() throws DAOException,EntityNullException,IllegalEntityArgumentException,ParseException,EntityPersistException {
        gen = createGeneralConfigs("label","value");

        generalConfigService.setInstance(gen);
        generalConfigService.persist();
        log.info(generalConfigService.getInstance().toString());
    }
}

The test was successful, but when I wanted to retrieve the instance using the getInstance method All the parameters I set before (through the previous constructor) are null I'm a novice at mocking objects. Is this behavior normal or is my code wrong?

Solution

It actually depends on the implementation of generalconfigservice #getinstance() If you use the @ injectmocks annotation, you can also simplify the test code

When using mockitojunitrunner, you do not need to manually initialize mocks and inject dependencies:

@RunWith(MockitoJUnitRunner.class)
public class GeneralConfigServiceImpltest  {

    @InjectMocks
    private GeneralConfigService generalConfigService;

    @Mock
    private GeneralConfigDAO generalConfigDAO;

    @Test
    public void testAddGeneralConfigCallDAOSuccess() {
       // generalConfigService is already instantiated and populated with dependencies here
       ...
    }
}
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>