我需要对INSERT语句执行集成测试。
基本上,我想要一个自动化测试,以确保在该查询中编写的SQL实际上是正确的。
我不确定如何编写此集成测试。
您需要考虑以下几点:
我已经看到很多帖子,它们立即开始讨论单元测试。我不想对此进行单元测试,我想编写一个集成测试以确保我的SQL查询正确。
我不是在寻找特定的代码,而是在寻找一种正确的概念方法来测试在代码中执行的sql查询(在我的情况下,它恰好是Java)。
你能给我一些建议吗?
代码:
public void insertPostStat(PostStat postStat) {
final String sql = "INSERT INTO post_stat(created_at, geom, google_place_id, google_place_name) " +
"VALUES(?, ST_SetSRID(ST_MakePoint(? , ? ), 4326), ?, ?";
KeyHolder holder = new GeneratedKeyHolder();
SqlParameterSource param = new MapSqlParameterSource()
.addValue("created_at", postStat.getCreatedAtMs())
.addValue("longitude", postStat.getLongitude())
.addValue("latitude", postStat.getLatitutde())
.addValue("google_place_id", postStat.getGooglePlaceId())
.addValue("google_place_name", postStat.getGooglePlaceName());
template.update(sql,param, holder);
}
答案 0 :(得分:1)
通常,测试插入涉及尝试回读数据以确保按预期方式写入了数据。如果没有自然键,则始终可以在所有列上进行选择。如果该表允许重复的行,则应首先对它们进行计数:
如果表不允许重复的行:
如果没有事务管理器,则需要手动清理:在运行插入功能之前和之后删除预期的行。