Gur*_*epS 4 java testing unit-testing
如果我有一个建立数据库连接的方法,那么如何测试这个方法呢?在连接成功的情况下返回bool是一种方式,但这是最好的方法吗?
从可测试性方法来看,最好将连接方法作为一种方法和方法来获取单独的方法吗?
另外,我如何测试从数据库中获取数据的方法?我可以对预期数据进行断言,但实际数据可能会发生变化,仍然是正确的结果集.
编辑:最后一点,检查数据,如果它应该是一个汽车列表,那么我可以检查它们是真正的汽车模型.或者如果它们是一堆Web服务器,我可以在系统上有一个存在的Web服务器列表,从测试中的代码返回,并获得测试结果.如果结果不同,数据是问题,但查询不是?
THnaks
rfe*_*eak 16
首先,如果您涉及数据库,则不再进行单元测试.您已进入集成(用于连接配置)或功能测试域.那些是非常不同的野兽.
连接方法肯定应该与数据提取分开.实际上,您的连接应该来自工厂,以便您可以集中它.至于测试连接,实际上您可以通过建立与DB的连接来测试您的配置是否正确.您不应该尝试测试连接池,因为它应该是其他人编写的库(dbcp或c3p0).此外,您可能无法对此进行测试,因为您的单元/集成/功能测试应该永远不会连接到生产级别数据库.
至于测试您的数据访问代码是否有效.这是功能测试,涉及很多框架和支持.您需要一个单独的测试DB,能够在测试期间动态创建模式,将任何静态数据插入表中,并在每次测试后将数据库返回到已知的清理状态.此外,应该实例化此DB,并以这样的方式运行,即2个人可以一次运行测试.特别是如果您有超过1个开发人员,还有一个自动化测试盒.
断言应该是针对静态数据(例如,状态列表,不经常更改)的数据,或者针对在测试期间插入的数据以及删除后的数据,因此它不会干扰其他测试.
编辑:如上所述,有一些框架可以帮助解决这个问题.DBUnit相当常见.
| 归档时间: |
|
| 查看次数: |
9505 次 |
| 最近记录: |