java如何对SQL查询进行单元测试?
我有一个类DBHandler
,它接受一个查询,通过SQL server运行它,检查错误并返回结果。如何对这个类进行单元测试
编辑:我会尽量更精确:
DBHandler
负责将查询传递给服务器。为了测试它是否真的这样做,抛出正确的异常,等等,我想将它连接到一个我将填充的模拟数据库。我的问题是——如何做到这一点?如何创建处理调用的模拟“服务器”
你可以在下面搜索框中键入要查询的问题!
我有一个类DBHandler
,它接受一个查询,通过SQL server运行它,检查错误并返回结果。如何对这个类进行单元测试
编辑:我会尽量更精确:
DBHandler
负责将查询传递给服务器。为了测试它是否真的这样做,抛出正确的异常,等等,我想将它连接到一个我将填充的模拟数据库。我的问题是——如何做到这一点?如何创建处理调用的模拟“服务器”
# 1 楼答案
我会使用依赖注入来传递数据库连接或类似的东西,这样整个事情都可以在测试中模拟出来。然后,您可以编写模拟查询抛出异常、返回各种错误或有效结果的测试。然后您的测试只是检查
DBHandler
是否正确执行# 2 楼答案
模拟数据库的快速解决方案如下所示:
设置HSQLDB测试服务器 独立于你的应用程序
填充测试数据
在需要时使用条件代码 连接到您的真实数据库,以 连接到测试服务器。A. 应用程序中的属性可以 控制这个
测试应用程序
# 3 楼答案
您需要使用在设置时创建和填充的内存中测试数据库,或者使所有测试都是事务性的,这样它们就不会改变您的测试数据库
您将不得不担心数据的存在
如果您使用的是Spring,那么它们支持事务性单元测试
不清楚你在问什么。你已经知道JUnit了。你觉得你错过了什么
# 4 楼答案
只需传递一个SQL查询,并将返回的结果与预期结果进行比较。易于理解的JUnit是一个单元测试框架,您可以利用它
对于复杂的数据库单元测试,请查看DBUnit