-1

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

            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?

4

1 回答 1

0

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

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

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

于 2016-06-29T07:58:36.260 回答