我现在正在编写JAX-RS Web服务。我的数据库逻辑已划分为DAO接口(例如interface ItemDAO
和具体实现class JDBCItemDAO
),它们通过依赖注入注入到我的控制器中。现在,通过给他们模拟DAO对我的控制器进行单元测试相对简单。但是,我无法真正测试我的DAO,因为它们使用JDBC API,并且没有任何依赖项,除了ConnectionFactory
(将java.sql.Connection返回给调用者)。我不能真正只是将模拟连接传递给DAO,因为只是验证DAO中的SQL查询是不够的。我希望能够测试它在数据库中的工作原理。我怎样才能做到这一点?
答案 0 :(得分:2)
DataSource
对象。这比你现在在DAO中拥有的ConnectionFactory
要好。您不希望始终建立新的物理连接,因为这很昂贵。DataSource
,例如HikariCP并且可能会在测试代码中使用更简单的内容,例如SingleConnectionDataSource