1

我正在使用放心,我想知道如何更改它运行的数据库?

目前我正在测试我的应用程序,该应用程序连接到包含我所有数据的数据库,但是速度很慢。我希望放心使用我的测试数据库。我怎样才能做到这一点?我是否需要使用仅连接到仅包含我的部分数据的数据库的第二台服务器?

4

2 回答 2

3

db 测试很慢。时期。网络测试(通过 http)也很慢。首先:你想做什么?如果我们在谈论单元测试,那么你做错了。在单元测试中,您不应该测试从 json over http 到 db 的所有内容。尽量避免两者。如果您的框架堆栈支持它(例如 spring-mvc),您可以在没有 https 流量的情况下测试您的 json 绑定。如果没有,请将 http 绑定测试与业务逻辑分开(模拟您的服务)。与数据库相同。只测试你的 dao/repository,没有其他任何东西。

当您有许多小测试时,您可以轻松地将较慢的(网络、数据库、集成冒烟测试)与快速(业务逻辑)分开,并将它们放在不同的组中。那么您也可以有选择地仅运行特定的组(取决于您目前正在更改的部分)。同样在詹金斯上,您可以为每个组设置单独的阶段。这样,如果您的业务逻辑失败并且如果它们通过了,那么 jenkins 将执行更慢的测试

如果出于某种原因您不想使测试更小,那么请考虑仅连接到 db 一次(在测试之前)并且不要关闭此连接。这将加快运行所有测试的速度。如果您的测试更改了数据库内容,请尝试将其保留为单个事务并在测试后进行回滚。这样您将避免在每次测试之前设置数据库

于 2013-09-23T17:42:19.893 回答
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>
于 2014-07-25T14:02:29.317 回答