Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何对测试数据库运行Rest-assured?_Java_Unit Testing_Rest_Jakarta Ee_Rest Assured - Fatal编程技术网

Java 如何对测试数据库运行Rest-assured?

Java 如何对测试数据库运行Rest-assured?,java,unit-testing,rest,jakarta-ee,rest-assured,Java,Unit Testing,Rest,Jakarta Ee,Rest Assured,我正在使用Rest assured,我想知道如何更改它所运行的数据库 目前,我正在测试我的应用程序,该应用程序连接到保存我所有数据的数据库,但是速度很慢。我希望大家放心使用我的测试数据库。我该怎么做?我是否需要使用第二台服务器,该服务器只连接到仅包含我的部分数据的数据库?数据库测试速度很慢。时期网络测试(通过http)也很慢。首先:你想做什么?如果我们谈论的是单元测试,那么您就做错了。在单元测试中,您不应该测试从http上的json到db的所有内容。尽量避免两者兼而有之。如果您的框架堆栈支持它(

我正在使用Rest assured,我想知道如何更改它所运行的数据库


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

数据库测试速度很慢。时期网络测试(通过http)也很慢。首先:你想做什么?如果我们谈论的是单元测试,那么您就做错了。在单元测试中,您不应该测试从http上的json到db的所有内容。尽量避免两者兼而有之。如果您的框架堆栈支持它(例如SpringMVC),您可以在不使用https通信的情况下测试json绑定。如果没有,请将http绑定测试与业务逻辑分开(模拟您的服务)。数据库也是如此。只测试dao/存储库,不测试其他内容

当您有许多小测试时,您可以轻松地将较慢的测试(网络、db、集成冒烟测试)与较快的测试(业务逻辑)分开,并将它们放在不同的组中。然后,您还可以选择只运行特定的组(取决于您当前正在更改的部分)。同样在詹金斯,你可以为每个小组安排不同的阶段。这样,如果业务逻辑失败,您可以从ci获得快速反馈,如果通过,jenkins也将执行较慢的测试


如果出于任何原因,您不希望使测试变小,那么只考虑连接到DB(测试之前),而不关闭此连接。这将加快所有测试的运行速度。如果您的测试更改了db内容,请尝试将其作为单个事务保留,并在测试后回滚。通过这种方式,您可以避免在每次测试前设置db,因为db测试速度较慢。时期网络测试(通过http)也很慢。首先:你想做什么?如果我们谈论的是单元测试,那么您就做错了。在单元测试中,您不应该测试从http上的json到db的所有内容。尽量避免两者兼而有之。如果您的框架堆栈支持它(例如SpringMVC),您可以在不使用https通信的情况下测试json绑定。如果没有,请将http绑定测试与业务逻辑分开(模拟您的服务)。数据库也是如此。只测试dao/存储库,不测试其他内容

当您有许多小测试时,您可以轻松地将较慢的测试(网络、db、集成冒烟测试)与较快的测试(业务逻辑)分开,并将它们放在不同的组中。然后,您还可以选择只运行特定的组(取决于您当前正在更改的部分)。同样在詹金斯,你可以为每个小组安排不同的阶段。这样,如果业务逻辑失败,您可以从ci获得快速反馈,如果通过,jenkins也将执行较慢的测试


如果出于任何原因,您不希望使测试变小,那么只考虑连接到DB(测试之前),而不关闭此连接。这将加快所有测试的运行速度。如果您的测试更改了db内容,请尝试将其作为单个事务保留,并在测试后回滚。这样可以避免在每次测试之前设置数据库

如果要使用数据库进行测试,请使用嵌入式数据库(例如内存中的数据库)

在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>

....

如果要使用数据库进行测试,请使用嵌入式数据库(例如内存中的数据库)

在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>

....

那么你的意思是Jenkins在开发阶段运行较慢的测试和单元测试?几乎:Jenkins应该运行所有可能的测试,包括所有数据库、浏览器、集成、单元测试等等。如果您将它们分组,平均而言,您会更早地收到错误消息。您还可以在不同的机器上分散不同的组并并行运行它们。开发人员应该运行他认为必要的测试。我在几乎所有的ctrl+s和db测试中运行所有的快速测试,就在推送到Origin之前。REST Assured实际上支持Spring MVC以及新的Spring mock MVC模块。所以你的意思是Jenkins运行较慢的测试,而单元测试则在开发阶段?几乎:Jenkins应该运行所有可能的测试,针对所有数据库、浏览器,集成、单元测试等一切。如果您将它们分组,平均而言,您会更早地收到错误消息。您还可以在不同的机器上分散不同的组并并行运行它们。开发人员应该运行他认为必要的测试。我在几乎所有的ctrl+s和db测试中运行所有的快速测试,就在push to Origin之前。REST Assured实际上支持Spring MVC以及新的Spring mock MVC模块。