加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Mockito模拟对象返回null

发布时间:2020-12-14 05:03:08 所属栏目:Java 来源:网络整理
导读:嗨,我试图实现一些测试我的jsf应用程序和mocks我使用mockito. (我也用弹簧) @RunWith(MockitoJUnitRunner.class)public class GeneralConfigServiceImplTest { private GeneralConfigService generalConfigService; @Mock private GeneralConfigDAO generalC
嗨,我试图实现一些测试我的jsf应用程序和mocks我使用mockito. (我也用弹簧)
@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());
    }
}

测试成功,但是当我想使用getInstance方法检索实例时.我之前设置的所有参数(通过之前的构造函数)为null.
我是嘲弄对象的新手,这样的行为是正常的还是我的代码有错误?

解决方法

它实际上取决于GeneralConfigService#getInstance()的实现.如果您使用@InjectMocks注释,还可以简化测试代码.

当使用MockitoJUnitRunner时,您不需要手动初始化mocks并注入依赖项:

@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
       ...
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读