【问题标题】:junit test with dao create and get id使用 dao 创建并获取 id 的 junit 测试
【发布时间】:2016-10-31 18:54:35
【问题描述】:

我有这项服务需要为其创建单元测试:

            SomeObject obj = new SomeObject();

            String objConfig = "<root id=%id% param1="something">....</root>"

            obj.setField1("value1");
            obj.setField2("value2");

            someObjectDao.create(obj);

            Long objId = obj.getId();
            obj.setConfig(objConfig.replace("%id%", objId.toString()));
            someObjectDao.update(obj);

现在的问题是,在实际情况下,DAO 创建会为对象分配 ID,但是如何通过单元测试设置对象 ID?

【问题讨论】:

    标签: java unit-testing junit dao data-access-object


    【解决方案1】:

    您可以通过两种方式执行此操作(如果您使用的是 JUnit 4):

    1. 使用真正的 DAO 并将测试类标记为 @Transactional 和 @Rollback。每个测试方法都会在单独的事务中打开,记录会被插入数据库并像在实际系统中一样处理,但是在方法退出后会发生回滚。

    2. 使用一些模拟框架,即mockito,模拟someObjectDao的create()方法,随意设置id。

    【讨论】:

      猜你喜欢
      • 2014-06-21
      • 2017-05-28
      • 1970-01-01
      • 1970-01-01
      • 2015-05-31
      • 2017-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多