我正在使用放心,我想知道如何更改运行的数据库?
目前我正在测试连接到保存所有数据的数据库的应用程序,但速度很慢。我想放心使用我的测试数据库。我怎样才能做到这一点?我是否需要使用仅连接到仅包含部分数据的数据库的第二台服务器?
答案 0 :(得分:3)
db测试很慢。期。网络测试(通过http)也很慢。首先:你想做什么?如果我们在讨论单元测试,那么你做错了。在单元测试中,你不应该测试从json到http到db的所有内容。尽量避免两者。如果您的框架堆栈支持它(例如spring-mvc),您可以在没有https流量的情况下测试您的json绑定。如果没有,请将http绑定测试与业务逻辑分开(模拟您的服务)。与数据库相同。没有别的东西,只测试你的dao / repository。
当您有许多小测试时,您可以轻松地将较慢(网络,数据库,集成烟雾测试)与快速(业务逻辑)分离,并将它们放在不同的组中。那么你也可以选择性地只运行特定的组(取决于你目前正在改变哪个部分)。同样在詹金斯你可以为每个小组分开舞台。通过这种方式,如果业务逻辑失败,您将从ci快速反馈,如果它们通过,那么jenkins将执行更慢的测试
如果由于任何原因你不想让你的测试变小,那么考虑只连接一次db(在你的测试之前)而不是关闭这个连接。这样可以加快所有测试的运行速度。如果您的测试更改了db内容,请尝试将其保留为单个事务,并在测试后进行回滚。这样你就可以避免在每次测试之前设置db
答案 1 :(得分:1)
如果要使用数据库进行测试,请使用嵌入式数据库(例如内存中的h2)。
在你的config.xml中:
<beans>
....
<!-- override your datasource bean named myDataSource -->
<jdbc:initialize-database data-source="myDataSource">
<!-- sql script with create tables -->
<jdbc:script location="init_database.sql"/>
<!-- sql script with insert -->
<jdbc:script location="seed_database.sql"/>
</jdbc:initialize-database>
</beans>