[英]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.