繁体   English   中英

使用jdbc JAVA在DAO类上的Spring unitTest

[英]Spring unitTest on DAO class using jdbc JAVA

我正在尝试对DAO类中的方法进行单元测试。 Dao类正在使用JDBC。 我正在尝试对其进行单元测试,但不使用测试数据库。 我必须使用某种用于存储所有信息的数据结构对其进行测试。

public class UserProfilesDao extends JdbcDaoSupport {

    @Autowired
    private MessageSourceAccessor msa;

        public long getUserServiceId(long userId, int serviceId) {
            String sql = msa.getMessage("sql.select.service_user_id");
            Object[] params = new Object[] { userId, serviceId };
            int[] types = new int[] { Types.INTEGER, Types.INTEGER };
            return getJdbcTemplate().queryForLong(sql, params, types);
        }
}

getJdbcTemplate()似乎是您要模拟的方法。

在单元测试中,声明一个UserProfilesDao成员,如下所示:

@Spy
private UserProfilesDao classToTest;

@Spy是模仿注释。

在单元测试中,声明设置方法如下:

@Before
public void preTestSetup()
{
    MockitoAnnotations.initMocks(this);

    doReturn(what ever you want).when(classToTest).queryForLong(
        any(xxx.class),
        any(yyy.class),
        any(zzz.class));
}

其中xxx,yyy和zzz是queryForLong参数类型。

您可以将数据存储在DTO对象中,并使用适当的密钥在地图中维护DTO。 为了进行测试,请根据需要使用键从地图中检索数据!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM