== 单元测试应用示例——测试工具类 == 工具类cn.com.pcgames.gamehall2.util.SqlHelper是游戏大厅DAO层辅助工具类.例如:SqlHelper.buildInsert(List fields, String tablename,String[] excludes);[[BR]] 根据数据库表元信息,表名生成sql插入语句,使用示例代码如cn.com.pcgames.gamehall2.repository.impl.GameDAOImpl[[BR]] {{{ #!java public class GameDAOImpl extends AbstractRepository implements GameDAO { private List tableFields; public void setTableFields(List tableFields) { this.tableFields = tableFields; } public void init() { this.tableFields = SqlHelper.listFields(simpleJdbcTemplate, "game"); } public GameDAOImpl() { super(Game.class); } public long createGame(Game game) { long gameId = idGenerator.generate("game", "gameId"); game.setGameId(gameId); //SqlHelper生成插入语句 String sql = SqlHelper.buildInsert(tableFields, "game", null); Object[] params = SqlHelper.getParameters(game, tableFields, null); int result = simpleJdbcTemplate.update(sql, params); return result == 1 ? gameId : 0; } ...... } }}} 如何单元测试SqlHelper.buildInsert?[[BR]] 测试SqlHelper.buildInsert(List fields, String tablename,String[] excludes);方法,需要准备fields,tablename,excludes这三个参数[[BR]] fields是数据库表的元信息,元信息依赖SimpleJdbcTemplate对象根据表名获取,我们让测试类SqlHelperTest继承之AbstractTransactionalJUnit4SpringContextTests[[BR]] 以获得applicationContext对象的引用,然后注入SimpleJdbcTemplate对象. {{{ #!java @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:applicationContext.xml" }) public class SqlHelperTest extends AbstractTransactionalJUnit4SpringContextTests { @Autowired SimpleJdbcTemplate simpleJdbcTemplate; ...... } }}}